如何定位网格元素

How to position grid elements

我遇到问题,对于 example,我使用 top: 150px; 在页面上的某个地方放置了一个标题 但是,一旦我开始减小我的 window 大小,它就会切断我的背景。我意识到使用像 top/bottom/left/rightmargin-top 这样的标签会导致这种情况发生,因为它想留在那个特定的地方并且不会随着 window.[=20= 一起减小尺寸]

我已经尝试在我的 body 中使用 background-size: cover; 并在我的 #title 中使用各种位置,但仍然无法解决这个问题。

CSS

html {
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
}

#gradient {    
    background: #00BFFF;
    background: -webkit-linear-gradient(to right bottom, #086A87, #00BFFF);
    background: linear-gradient(to right bottom, #086A87, #00BFFF);
    border-radius: 2px;
    /*    background-size:cover;*/
    background-size:100% 100%;
    background-repeat: no-repeat;
}

#title {
    font-size: 60px;
    color: #FF8000;
    /*    margin-top: 150px;*/
    /*    position: fixed;*/
    /*    position: relative;*/
    top: 150px;
}

HTML

<html>
 <body id="gradient">

<!-- Title -->
 <div class="row ">

    <div id="title" class="small-16 large-12 large-centered text-center columns">Example</div>

  </div>
 </body>
</html>

放置网格元素以消除此类问题的最佳方式是什么?

我很难使用网格系统在页面上定位元素。

谢谢!

编辑:已更新HTML

编辑 2:如果您将高度调整到非常小,您就会看到我的问题。 http://codepen.io/anon/pen/RNXrMM

关于调整大小的渐变问题'disappearing',如果你改变

html {
    width: 100%;
    height: 100%; 

html {
    width: 100%;
    min-height: 100%;

应该可以解决这个问题。还允许您使用

 #title {margin-top: 150px;

没有任何截止 - 但是,如果您希望您的设计具有响应性(这听起来有点像您所做的)- 我建议您使用 ems 或 % 作为您的边距,以使其更加一致。

你可以看到 fiddle here

尝试添加 min-width:1000px 您可以根据需要设置像素

CSS 代码:-

html {
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    min-width: 1000px;
}

#gradient {    
    background: #00BFFF;
    background: -webkit-linear-gradient(to right bottom, #086A87, #00BFFF);
    background: linear-gradient(to right bottom, #086A87, #00BFFF);
    border-radius: 2px;
    /*    background-size:cover;*/
    background-size:100% 100%;
    background-repeat: no-repeat;
}

#title {
    font-size: 60px;
    color: #FF8000;
    /*    margin-top: 150px;*/
    /*    position: fixed;*/
    /*    position: relative;*/
    top: 150px;
}

这里的核心问题是您不应该定位或设置网格元素的样式(背景可能除外)。将您的标题元素放在内容所属的网格中,并相应地设置样式。

<div class="gradient">
    <div class="row header">
        <div class="small-16 large-12 large-centered text-center columns">
          <div id="title">Example</div>
        </div>
    </div>
 </div>

Demo

请注意,我已将背景移动到 div 元素而不是 body,并且我使用了 class,这更适合 CSS 因为它使它更具可重用性和健壮性。