MDN之Web 开发技术【clear属性】

忘是亡心i 2021-07-04 17:25 513阅读 0赞

clear CSS 属性指定一个元素是否必须移动(清除浮动后)到在它之前的浮动元素下面。clear 属性适用于浮动和非浮动元素。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
当应用于非浮动块时,它将非浮动块的边框边界移动到所有相关浮动元素外边界的下方。这个非浮动块的垂直外边距会折叠。

另一方面,两个浮动元素的垂直外边距将不会折叠。当应用于浮动元素时,它将元素的外边界移动到所有相关的浮动元素外边框边界的下方。这会影响后面浮动元素的布局,后面的浮动元素的位置无法高于它之前的元素。

要被清除的相关浮动元素指的是在相同块级格式化上下文中的前置浮动。

注意:如果一个元素里只有浮动元素,那它的高度会是0。如果你想要它自适应即包含所有浮动元素,那你需要清除它的子元素。一种方法叫做clearfix,即clear一个不浮动的 ::after 伪元素。

  1. #container::after {
  2. content: "";
  3. display: block;
  4. clear: both;
  5. }

语法

  1. /* Keyword values */
  2. clear: none;
  3. clear: left;
  4. clear: right;
  5. clear: both;
  6. clear: inline-start;
  7. clear: inline-end;
  8. /* Global values */
  9. clear: inherit;
  10. clear: initial;
  11. clear: unset;

none
元素不会向下移动清除之前的浮动。
left
元素被向下移动用于清除之前的左浮动。
right
元素被向下移动用于清除之前的右浮动。
both
元素被向下移动用于清除之前的左右浮动。
inline-start
该关键字表示该元素向下移动以清除其包含块的起始侧上的浮动。即在某个区域的左侧浮动或右侧浮动。
inline-end
该关键字表示该元素向下移动以清除其包含块的末端的浮点,即在某个区域的右侧浮动或左侧浮动。

Formal syntax

  1. none | left | right | both | inline-start | inline-end

示例

clear: left

HTML

  1. <div class="wrapper">
  2. <p class="black">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Phasellus sit amet diam. Duis mattis varius dui. Suspendisse eget dolor.</p>
  3. <p class="red">Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</p>
  4. <p class="left">This paragraph clears left.</p>
  5. </div>

CSS

  1. .wrapper{
  2. border:1px solid black;
  3. padding:10px;
  4. }
  5. .left {
  6. border: 1px solid black;
  7. clear: left;
  8. }
  9. .black {
  10. float: left;
  11. margin: 0;
  12. background-color: black;
  13. color: #fff;
  14. width: 20%;
  15. }
  16. .red {
  17. float: left;
  18. margin: 0;
  19. background-color: pink;
  20. width:20%;
  21. }
  22. p {
  23. width: 50%;
  24. }

在 CodePen 中打开 在 JSFiddle 中打开
在这里插入图片描述

clear: right

HTML

  1. <div class="wrapper">
  2. <p class="black">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Phasellus sit amet diam. Duis mattis varius dui. Suspendisse eget dolor.</p>
  3. <p class="red">Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</p>
  4. <p class="right">This paragraph clears right.</p>
  5. </div>

CSS

  1. .wrapper{
  2. border:1px solid black;
  3. padding:10px;
  4. }
  5. .right {
  6. border: 1px solid black;
  7. clear: right;
  8. }
  9. .black {
  10. float: right;
  11. margin: 0;
  12. background-color: black;
  13. color: #fff;
  14. width:20%;
  15. }
  16. .red {
  17. float: right;
  18. margin: 0;
  19. background-color: pink;
  20. width:20%;
  21. }
  22. p {
  23. width: 50%;
  24. }

在 CodePen 中打开 在 JSFiddle 中打开
在这里插入图片描述

clear: both

HTML

  1. <div class="wrapper">
  2. <p class="black">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Phasellus sit amet diam. Duis mattis varius dui. Suspendisse eget dolor. Fusce pulvinar lacus ac dui.</p>
  3. <p class="red">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Phasellus sit amet diam. Duis mattis varius dui. Suspendisse eget dolor.</p>
  4. <p class="both">This paragraph clears both.</p>
  5. </div>

CSS

  1. .wrapper{
  2. border:1px solid black;
  3. padding:10px;
  4. }
  5. .both {
  6. border: 1px solid black;
  7. clear: both;
  8. }
  9. .black {
  10. float: left;
  11. margin: 0;
  12. background-color: black;
  13. color: #fff;
  14. width:20%;
  15. }
  16. .red {
  17. float: right;
  18. margin: 0;
  19. background-color: pink;
  20. width:20%;
  21. }
  22. p {
  23. width: 45%;
  24. }

在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,513人围观)

还没有评论,来说两句吧...

相关阅读