美文网首页
2019-03-28处理float后文字环绕

2019-03-28处理float后文字环绕

作者: Kason晨 | 来源:发表于2019-03-28 09:35 被阅读0次

其实我不太喜欢浮动,更喜欢flex布局。不过有时候浮动还是比较有用的。
现在我们来处理一个问题。破掉float后文字环绕。


处理前

处理后


处理后
其实是要在环绕文本哪里加一个overflow属性,属性值只要不是visible都可以。
可以是:
overflow:auto,

overflow:hidden,
或者overflow:scroll
这其实属于BFC块级格式上下文;
还有很多属性可以设置BFC:

如下

· float 的值不是 none。

· position 的值不是 static 或者 relative。

· display 的值是 inline-block、table-cell、flex、table-caption 或者inline-flex

· overflow 的值不是 visible

当然也有新的方式,不过浏览器支持度不太好;

创建 BFC 的新方式

使用overflow或其他的方法创建BFC时会有两个问题。首先,这些方法本身是有自身的设计目的,所以在使用它们创建BFC时可能会产生副作用。例如,使用overflow创建BFC后在某些情况下可能会看到出现一个滚动条或者元素内容被裁切。

这是由于overflow属性的设计是用来让你告诉浏览器如何定义元素的溢出状态的。浏览器执行了它最基本的定义。

即使在没有任何不想要的副作用的情况下,使用 overflow 也可能会让其他开发人员感到困惑。为什么 overflow 设置为 auto 或 scroll?最初的开发者的意图是什么?他们想要这个组件上的滚动条吗?

最安全的做法应该是创建一个 BFC 时并不会带来任何副作用,它内部的元素都安全的呆在这个迷你布局中,这种方法不会引起任何意想不到的问题,也可以理解开发者的意图。CSS 工作组也十分认同这种想法,所以他们定制了一个新的属性值:display:flow-root。

flow-root 浏览器支持情况

你可以使用display:flow-root安全的创建BFC,来解决上文中提到的各种问题:包裹浮动元素、阻止外边距叠加和阻止围绕浮动元素。


image.png

浏览器对该属性的支持目前还是有限的,如果你觉得这个属性值很方便,请投票去让Edge也支持它。

本文代码:

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <style type="text/css">
        .outer {
  border: 5px solid rgb(214,129,137);
  border-radius: 5px;
  width: 450px;
  padding: 10px;
  margin-bottom: 40px;
}

.float {
  padding: 10px;
  border: 5px solid rgba(214,129,137,.4);
  border-radius: 5px;
  background-color: rgba(233,78,119,.4);
  color: #fff;
  float: left;
  width: 200px;
  margin: 0 20px 0 0;
}.text {
  overflow: auto;
}
    </style>
</head>
<body>
<div class="outer">
  <div class="float">I am a floated element.</div>
 <div class="text">I am textI am a floated element.I am a floated elementI am textI am a floated element.I am a floated element.</div>
</div>
</body>
</html>

相关文章

  • 2019-03-28处理float后文字环绕

    其实我不太喜欢浮动,更喜欢flex布局。不过有时候浮动还是比较有用的。现在我们来处理一个问题。破掉float后文字...

  • float相关

    float最初是为了处理文字环绕的问题 float的两个特点:包裹(元素block块状化,砖头化)与破坏(破坏性造...

  • inline-block

    float和display:inline-block区别 float Float 经常用于实现文字环绕图片 dis...

  • 浮动

    float:left | right | none;�(设计之初是用于文字环绕) 设置float属性: (1)浮动...

  • float

    视频地址 float 设计的目的 实现文字环绕图片显示效果 清除 float 带来的影响 float 元素底部插入...

  • CSS-float浮动

    float:浮动 float: left right none;设计之初的作用是做文字环绕 。常用于水平排列...

  • float为什么会被文字环绕

    看到float会脱离文档流,大家应该都能理解,但是却会被文字环绕,这看起来自相矛盾啊,为什么文字能看到它的存...

  • [CSS]深入浅出float

    float原本是用于“文字环绕元素”的效果,但是,平时我们经常在布局上用float属性。那么,使用float时,需...

  • CSS理解之Float

    1.Float的设计初衷仅仅是: 实现文字环绕效果,如下图所示: 明白了float的设计初衷,就可以明白float...

  • float

    另一个布局中常用的CSS属性是 float 。Float 可用于实现文字环绕图片,如下: 一定注意把图片放在文字前...

网友评论

      本文标题:2019-03-28处理float后文字环绕

      本文链接:https://www.haomeiwen.com/subject/ocyfbqtx.html