浮动 --- 文字环绕

<style type="text/css">
    .article {
        width: 500px;
        margin: 20px auto;
    }
    .article img:nth-of-type(odd){
        float: left;
        margin-right: 10px;
    }
     
    .article img:nth-of-type(even){
        float: right;
        margin-left: 10px;
    }
</style>

<body>
    <div class="article">
        <img src="http://img.ujian.cc/nice/35.jpg" alt="" />
        <p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.</p>
        <img src="http://img.ujian.cc/nice/36.jpg" alt="" />
        <p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.</p>
        <img src="http://img.ujian.cc/nice/38.jpg" alt="" />
        <p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.</p>
        </div>
</body>

效果如图:

然后百思不得其解,因为img本身为行内块元素,兼有块状元素与行内元素的“气质”,但紧跟在其后面的p元素是块状元素,当img浮动之后会脱离标准文档流,那么p元素会上移,按照经验文字部分会有一部分和img重叠(想象float后的元素都是漂浮在文档流之上的),然而并没有重叠。
 
文字可以环绕图片的原因如下:
脱离文档流,也就是将元素从普通的布局排版中拿走,其他盒子在定位的时候,会当做脱离文档流的元素不存在而进行定位。需要注意的是,使用float脱离文档流时,其他盒子会无视这个元素,但其他盒子内的文本依然会为这个元素让出位置,环绕在周围。而对于使用absolute positioning脱离文档流的元素,其他盒子与其他盒子内的文本都会无视它。

 

原文:https://www.cnblogs.com/zm-2010/p/5656063.html

转载于:https://www.cnblogs.com/xjy20170907/p/11579848.html

### CSS 实现图片右浮动文字环绕布局 要实现图片右浮动文字在其左侧环绕的效果,可以使用 `CSS` 中的 `float` 属性。通过将图片设置为向右浮动 (`float: right`),可以让其周围的文本自动环绕到图片的左侧。 以下是具体的实现方法: #### HTML 结构 首先定义一个基本的 HTML 结构,其中包含一张图片和一段围绕它的文字说明。 ```html <div class="container"> <img src="example.jpg" alt="Example Image" class="floating-image"> <p>这是一段用于环绕图片的文字内容。这段文字将会环绕在图片的左侧。</p> </div> ``` #### CSS 样式 接着,在 CSS 文件中应用样式来控制图片的位置以及文字环绕效果。 ```css .floating-image { float: right; /* 设置图片向右浮动 */ margin-left: 10px; /* 添加左边距以防止文字紧贴图片 */ margin-bottom: 10px; /* 可选:增加底部间距让布局更美观 */ } .container p { display: inline-block; width: auto; /* 自动调整宽度适应剩余空间 */ } ``` 上述代码片段展示了如何利用 `float:right` 来创建所需的布局[^2]。 同时还设置了外边距(`margin`)属性以便于改善视觉上的间隔感。 注意,当页面结构复杂或者存在其他影响因素时可能还需要进一步微调这些值才能达到最佳展示效果。 ### 考虑响应式设计 对于现代网页开发而言,考虑不同设备尺寸下的表现非常重要。可以通过媒体查询(Media Queries)确保该布局在各种屏幕大小上均能良好呈现: ```css @media (max-width: 600px){ .floating-image{ float:none !important ;/* 移除浮动*/ margin:auto ; display:block ; } } ``` 这里设定了一个简单的断点例子, 当窗口宽度小于等于600像素时取消图片浮 动并居中显示[^3].
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值