CSS和页面折叠

时间:2017-01-30 05:30:32

标签: html css html5 responsive-design

问题#1 → 这是代码笔链接→Click Here。 当我使用id =" pagewrap"

将页脚放出主div时
      <footer>
        <h4>Footer</h4>
        <p>Footer text</p>
      </footer>
   </div><!-- end-of-pagewrap -->

如果我这样做→

 </div><!-- end-of-pagewrap -->
        <footer>
        <h4>Footer</h4>
        <p>Footer text</p>
      </footer>

它像这样被打破→https://www.screencast.com/t/VXRFGVa30

问题#2→ 我更关心讨论。

<div id="pagewrap">

#pagewrap {
  padding: 15px;
  max-width: 1400px;
  margin: 20px auto;
}

但是,如果我将其更改为类系统,填充或边框将消失。出了什么问题? CSS是一样的吗?

<div class="pagewrap">

.pagewrap {
  padding: 15px;
  max-width: 1400px;
  margin: 20px auto;
}

4 个答案:

答案 0 :(得分:1)

这是因为float的子元素上的pagewrap属性,.clearfix上使用pagewrap

对于问题2 ,您只需将所有pagewrap选择器从ID更新为Class

.clearfix:after {
    visibility: hidden;
    display: block;
    font-size: 0;
    content: " ";
    clear: both;
    height: 0;
}

@import url(http://fonts.googleapis.com/css?family=Open+Sans);
 body {
  font-family: 'Open Sans', sans-serif;
  color: #666;
}
/* STRUCTURE */

#pagewrap {
  padding: 15px;
  max-width: 1400px;
  margin: 20px auto;
}
header {
  height: 100px;
  padding: 0 15px;
}
#content {
  width: 66%;
  float: left;
  padding: 5px 15px;
}
#sidebar {
  width: 28%;
  padding: 5px 15px;
  float: right;
}
footer {
  clear: both;
  padding: 0 15px;
}
/************************************************************************************
MEDIA QUERIES
*************************************************************************************/

/* for 980px or less */

@media screen and (max-width: 980px) {
  #pagewrap {
    width: 94%;
  }
  #content {
    width: 91.5%;
    padding: 1% 4%;
    float: left;
  }
  #sidebar {
    clear: both;
    padding: 1% 4%;
    width: auto;
    float: right;
  }
  header,
  footer {
    padding: 1% 4%;
  }
}
/* for 700px or less */

@media screen and (max-width: 600px) {
  #content {
    width: auto;
    float: none;
  }
  #sidebar {
    width: auto;
    float: none;
  }
}
/* for 480px or less */

@media screen and (max-width: 480px) {
  header {
    height: auto;
  }
  h1 {
    font-size: 2em;
  }
  #sidebar {
    display: none;
  }
}
#content {
  background: #f8f8f8;
}
#sidebar {
  background: #f0efef;
}
header,
#content,
#middle,
#sidebar {
  margin-bottom: 5px;
}
#pagewrap,
header,
#content,
#middle,
#sidebar,
footer {
  border: solid 1px #ccc;
}
.clearfix:after {
  visibility: hidden;
  display: block;
  font-size: 0;
  content: " ";
  clear: both;
  height: 0;
}
<div id="pagewrap" class="clearfix">
  <header>
    <h1>2 Column Responsive Layout</h1>
  </header>
  <section id="content">
    <h2>1st Content Area</h2>
    <p>This page demonstrates a 2 column responsive layout, complete with responsive images and jquery slideshow.</p>
  </section>
  <aside id="sidebar">
    <h2>2nd Content Area</h2>
    <p>Eodem modo typi, qui nunc nobis videntur parum clari, fiant sollemnes in futurum.</p>
    <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.</p>
    <p>Eodem modo typi, qui nunc nobis videntur parum clari, fiant sollemnes in futurum.</p>
  </aside>
  <!--       <footer>
        <h4>Footer</h4>
        <p>Footer text</p>
      </footer> -->
</div>
<!-- end-of-pagewrap -->
<footer>
  <h4>Footer</h4>
  <p>Footer text</p>
</footer>

答案 1 :(得分:0)

当Abhishek为你排除了你的Q#2时,你在CSS文件的不同部分为你忘记编辑的#pagewrap定义了样式。这就是为什么当你改为班级系统时,一些风格会消失。

答案 2 :(得分:0)

  1. 由于浮动属性,肯定会发生这种情况。使用clearfix是正确的方法。但是,如果您不想使用clearfix,请删除float并使用显示属性。
  2. 第二个选项为什么它不起作用 - 因为你必须将每个#pagewrap替换为你的css中的.pagewrap。

答案 3 :(得分:0)

当父容器中的元素浮动时,父容器忽略它们的高度。要解决这个问题,最基本的方法是使用带有clear的空div:浮动elemets之后的父容器内的两个属性。更简洁的方法是使用clearfix

您已使用clear:页脚上的两个属性,但只有在 pagewrap 时才会清除浮点数(父级容器)作为外部 pagewrap 页脚不再是其子元素。

对于第二个问题,只需将所有 #pagewrap 更新为 .pagewrap