html - 如何在 HTML 中指定相对定位?

标签 html css twitter-bootstrap

我习惯于使用 XML 设计 Android 布局,并且想知道在我目前正在处理的 HTML 设计中是否可以从中得出相似之处。特别是,我有:

-------------------------------------------
| <img src="logo.png"                     |
-------------------------------------------
|  n  |
|  a  |
|  v  |           Content
|  b  |
|  a  |
|  r  |

This是我正在使用的模板。在原版中,顶部栏不是图像 Logo ,而是 navbar-brand ,因此一切似乎都很好地结合在一起。我用明显更大的 Logo (.png) 替换了顶部的“SB-Admin”。结果是相当多的内容以及侧导航栏中的“n”都被掩盖了。

我想弄清楚的是如何指定相对定位,或者我应该如何布置此页面以便显示所有内容?我正在寻找类似于 navbar:layout_below=logo.png 类型的 XML 内容。

目前我的解决方案是修改与导航栏和内容相关联的 .css 并为它们提供更高的“margin-top”,但这似乎是解决此问题的一种非常 hacky 的方法。所以我的问题是,有没有一种方法可以在 HTML 中指定相对定位,或者我是否应该在我的本地机器上用边距反复试验,或者,什么是正确的布局方式,以便三者中的所有内容我的示例中显示的 View 相互之间没有重叠?

<div id="wrapper"> 
    <div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
        <div class="navbar-header">
            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            </button>
        <img src="logo.png" class="navbar-brand">
    </div> 

    <div class="collapse navbar-collapse navbar-ex1-collapse">
        <ul class="nav navbar-nav side-nav"> <!-- This only looks ok if I change side-nav margin -->
            <li class="active"><a href="index.html">Dashboard</a></li>
            <li><a href="charts.html">Adoption</a></li>
            <li><a href="tables.html">Usage Statistics</a></li>
            <li><a href="forms.html">Classifiers</a></li>
        </ul>
    </div>

    <div class="container">
        <p>Hey</p> <!--this top here gets cut off-->
        <p>Hey</p>
        <p>What's up?</p>
        <p>What's up?</p>
    </div>
</div>

编辑:不一定是相对布局,我正在寻找避免硬编码边距值的解决方案,这是我目前发现自己正在做的事情,或者如果这不是不好的做法,我也会接受一个解释为什么不这样做的答案(即这样的解决方案是否适用于所有屏幕尺寸?)。

最佳答案

当您使用固定在顶部的导航栏时,您需要将一些 padding-top 放入 body 作为 Docs状态:

Body padding required

The fixed navbar will overlay your other content, unless you add padding to the top of the . Try out your own values or use our snippet below. Tip: By default, the navbar is 50px high.

body { padding-top: 70px; }

就像文档继续说的那样,你很重要

Make sure to include this after the core Bootstrap CSS.

这样您就不必为所有看起来被固定导航栏“阻挡”的元素单独添加 margin-tops。

关于html - 如何在 HTML 中指定相对定位?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24867887/

相关文章:

html - 将 h1 标题移出顶部区域并添加到 Drupal 中的内容

css - 为什么我的 css3 悬停效果在 SVG 中不起作用?

css - 响应大小 Font Awesome 图标

javascript - Bootstrap 模式中的 TinyMCE 与谷歌翻译冲突

html - 元素中包含位置粘性?

html - float div的左侧以创建多列布局?

html - 使图像覆盖变暗并在 CSS 中在其上添加文本

javascript - 使用 CSS 和 jQuery 的动态的、表格式的列表项行

html - 缩小页面时不可点击的元素

twitter-bootstrap - b 表中的 BootstrapVue 条件列