Grid本身不支持文本环绕图片,shape-outside仅对浮动元素生效;必须将图文共置一个普通块级容器内并用float实现环绕,再将该容器作为Grid的一个单元格。
Grid 本身无法实现文字环绕图片,
在 Grid 子项上完全无效——这不是写法问题,而是规范层面的限制。
为什么
里加
没反应
浏览器明确忽略 Grid 容器中子元素的
和
。原因很直接:Grid 子项由
/
控制位置,已脱离文本流;而
只作用于参与行内流式布局的浮动元素(
或
),两者底层机制冲突。
即使给
加了
和
,只要它是
容器的直系子项,就必然失效
、
、
这类常见样式会进一步破坏环绕所需的流式上下文
用
伪元素插入图片或通过
生成,同样不参与外部段落的文字流计算
真正能跑通的结构:Grid 控制区块,float 控制内部图文
必须把「图文共处一个流式容器」这个前提重建起来。做法是:让 Grid 只负责划分大区域(比如主内容区、侧边栏),而把需要环绕的图片和文字一起塞进某个 Grid 单元格内部的普通
shape-outsidegrid-areashape-outsidefloatshape-outsidegrid-columngrid-rowshape-outsidefloat: leftfloat: right.imagefloat: leftshape-outside: circle(50%)display: gridoverflow: hiddendisplay: blockmargin: auto::beforecontent: url()
或
里。
HTML 中图片标签必须出现在文字内容之前,否则环绕从段落开头就开始,视觉错位
该内部容器(即 Grid 子项)不能设
overflow: hidden
,否则会裁掉文字绕到图片下方的部分
图片需设
float: left
、
width
和
height
(固定值或等比缩放)、
margin-right: 12px
,禁用
display: block
如果 Grid 列宽是
200px
,但图片宽
180px
+ 文字最小宽度
200px
,那文字根本没空间绕,只能换行到底部——列轨道得留足余量
shape-outside: url()
在 Safari 里挂了怎么办
Safari 至今不支持
shape-outside: url(#svg-path)
或
shape-outside: url(image.svg)
,哪怕 SVG 路径闭合、背景透明、尺寸明确。这是硬性兼容缺口,不是配置问题。
使用HTML,CSS,JavaScript开发Android应用程序 英文文字pdf版附源文件
如果你了解HTML,CSS和JavaScript,您已经拥有所需的工具开发Android应用程序。本动手本书展示了如何使用这些开源web标准设计和建造,可适应任何Android设备的应用程序 - 无需使用Java。您将学习如何创建一个在您选择的平台的Android友好的网络应用程序,然后转换与自由PhoneGap框架到一个原生的Android应用程序。了解为什么设备无关的移动应用是未来的潮流,并开始构建应用程序,提供更
下载
立即学习
“
前端免费学习笔记(深入)
”;
想跨浏览器稳定生效,优先用
shape-outside: circle(50%)
或
polygon()
这类 CSS 内置函数
若必须用 SVG 路径,Chrome/Firefox 可行,但得确保
内只含单个
,无
、
或多余属性
别依赖
wrap-flow
或
wrap-through
——Exclusions 草案仍无任何浏览器实现,caniuse 标为 “No support”
最易被忽略的一点:Grid 和 float 是两层职责。Grid 管“哪块内容放哪”,float 管“这块里图和字怎么缠”。混在一起调,99% 的失败都卡在这儿。
相关文章
- 如何在 React.js 中使用 @ 符号进行路径别名导入
- jquery ajax请求方式与提示用户正在处理请稍等
- 浅谈TypeScript中值得了解的7个方法
- jquery如何把数组变为字符串传到服务端并处理_jquery
- Vue中如何实现父子组件之间的通信?
- 如何用 CSS 实现子元素在兄弟元素内绝对居中显示
- CSS如何解决Flex布局下图片被挤压变形_巧用flex-shrink属性控制缩放
- 没有 GeoJSON 数据怎么办?如何轻松获取县村级地图数据?
- HTML5注释和CSS注释一样吗_两者语法差异及跨语言使用注意【对比】
- 如何使用HTML、CSS和jQuery创建一个动态的文本输入框提示
