为什么CSS中设置了clear:both的文本段落还会出现在设置了float:left的图片右边?而不是另起一行?

clear:both不是不允许有浮动元素出现在设置了该属性的内容左右吗?
请大家看看下面的代码,指导一下:
<HTML>
<HEAD>
<TITLE>明月几时有</TITLE>
<STYLE TYPE="TEXT/CSS">
<!--
img.p1{float:left;margin-right:0.8em;
margin-bottom:0.5em
}
img#p2{position:absolute;top:250px;left:200px
}
p{font-size=20px;font-style:italic;text-indent:30px;clear:both;
line-height:1.4em
}
body{ background-color:lightyellow}
-->
</STYLE>
</HEAD>
<body>
<p>
<img src="tu2.jpg" class="p1" width="250" alt="">
明月几时有,把<br>
酒问青天,不知天上<br>
宫阕,今夕是何年?<br>
我欲乘风归去,唯恐<br>
琼楼玉宇,高处不胜<br>
寒,起舞弄清影,何<br>
似在人间?<br>
</p>
<p>
<img src="tu3.jpg" id="p2" width="250" alt="">
转朱阁,低绮<br>
户,照无眠。不应有<br>
恨,何事长向别时<br>
圆?人有悲欢离合,<br>
月有阴晴圆缺,此事<br>
古难全但愿人长<br>
久,千里共婵娟。<br>
</p>
</BODY>
</HTML>
只有5分,全给您了

现在clear:both所指的是<P>标签,包含img和文字,整个<p>clear:both对里面的内容排列是没有影响的。
如果希望文字另起一行,需要将所有的文字用<p></p>标签包围,并设置clear:both属性。
【不过不知道你设置 img#p2 的position:absolute是想干嘛~】
如:

<HTML>
<HEAD>
<TITLE>明月几时有</TITLE>
<STYLE TYPE="TEXT/CSS">
<!--
img.p1{float:left;margin-right:0.8em;
margin-bottom:0.5em
}
img#p2{position:absolute;top:250px;left:200px
}
p{font-size=20px;font-style:italic;text-indent:30px;clear:both;
line-height:1.4em
}
body{ background-color:lightyellow}
-->
</STYLE>
</HEAD>
<body>
<img src="tu2.jpg" class="p1" width="250" alt="">
<P>
明月几时有,把<br>
酒问青天,不知天上<br>
宫阕,今夕是何年?<br>
我欲乘风归去,唯恐<br>
琼楼玉宇,高处不胜<br>
寒,起舞弄清影,何<br>
似在人间?<br>
</P>
<img src="tu3.jpg" id="p2" width="250" alt="">
<p>
转朱阁,低绮<br>
户,照无眠。不应有<br>
恨,何事长向别时<br>
圆?人有悲欢离合,<br>
月有阴晴圆缺,此事<br>
古难全但愿人长<br>
久,千里共婵娟。<br>
</p>
</BODY>
</HTML>
温馨提示:内容为网友见解,仅供参考
第1个回答  2014-06-03

p的位置不对。

<HTML>
<HEAD>
<TITLE>明月几时有</TITLE>
<STYLE TYPE="TEXT/CSS">
<!--
img.p1{float:left;margin-right:0.8em;
margin-bottom:0.5em
}
img#p2{position:absolute;top:250px;left:200px
}
p{font-size=20px;font-style:italic;text-indent:30px;clear:both;
line-height:1.4em
}
body{ background-color:lightyellow}
-->
</STYLE>
</HEAD>
<body>

<img src="tu2.jpg" class="p1" width="250" alt="">
<p>
明月几时有,把<br>
酒问青天,不知天上<br>
宫阕,今夕是何年?<br>
我欲乘风归去,唯恐<br>
琼楼玉宇,高处不胜<br>
寒,起舞弄清影,何<br>
似在人间?<br>
</p>
<p>
<img src="tu3.jpg" id="p2" width="250" alt="">
转朱阁,低绮<br>
户,照无眠。不应有<br>
恨,何事长向别时<br>
圆?人有悲欢离合,<br>
月有阴晴圆缺,此事<br>
古难全但愿人长<br>
久,千里共婵娟。<br>
</p>
</BODY>
</HTML>

第2个回答  2014-06-03
你clear:both;放的位置不对

你应该把你现在的P标签改成div
然后单独给文字加P标签
然后设置P标签clear:both;
就行了
第3个回答  2014-06-03
不知道你想要得到什么效果,但是可以肯定的告诉你,clear:both是有效果的
你直接告诉我你想要达到什么效果就可以了,我帮你修改代码

为什么CSS中设置了clear:both的文本段落还会出现在设置了float:left的...
现在clear:both所指的是<P>标签,包含img和文字,整个clear:both对里面的内容排列是没有影响的。如果希望文字另起一行,需要将所有的文字用标签包围,并设置clear:both属性。【不过不知道你设置 img#p2 的position:absolute是想干嘛~】如:<HTML> <HEAD> <TITLE>明月几时有<\/TITLE> <STYLE TYPE="TE...

在css中,用了“ clear:both;”; 为什么只有左浮动有影响,而右浮动却没...
你必须也在.thr这里也加上clear:both才行,你现在的.thr是设置成float:left的,所以.thr会跟在.tow的后面。

为什么在CSS样式里设置了float为left还是跑到右边去了咧
前面没清除浮动导致的 当父盒子剩余的宽度容纳不下新浮动的子盒子时,子盒子会另起一行,且它的上边界始终低于前一个浮动盒子的下边界。所以会造成在浮动在右边的样子

css中的清除浮动{clear:both;}和无浮动{flaot:none;}的区别和具体用法...
clear:both;是为了不让浮动的内容影响别的标签,所以要清除浮动 float:none;我用过几次都是因为原先已经用过float:left;或者float:right;但是由于是控件或者公用的样式,如果改了会影响较大,就用float:none覆盖原先的样式。这么说不知道能不能明白,最好有个实例。

html的clear both含义
left 清除该元素 左边的浮动元素。俗一点就是说谁设置了clear:left属性,谁的左边就不允许存在浮动的元素 right 清除该元素 右边的浮动元素。俗一点就是说谁设置了clear:right属性,谁的右边就不允许存在浮动的元素 both清除两边的浮动 ,清除该元素 左右边的浮动元素。俗一点就是说谁设置了clear:both...

为什么我在网上看的使用横向排版时都用float:left 属性而没有用float...
float:right 就往右边靠了,一般阅读顺序都是从左边开始吧?所以用 float:left clear:both就是把之前的 float清除掉。 例如说,两个宽100px的DIV都float:left,那么它们会靠左边排成一个横行。1 2 3 但是你又加了个DIV。发现3还是跟他们一行,你觉得这样不行。于是clear:left;1 2 3 3就在新的...

css中clear的什么作用?
在这里的话是清除浮动的意思。单纯的就你的这个例子来说,如果不加clear:both 这两个苹果是一行显示的,加了之后变成两行显示了。

css中对br执行clear:both;是为什么?
在我遇到的情况里,如果前面的几个部分使用float,因为float所在的物理位置已经脱离文档流了所以不占位置,如果不采取措施就会让后面的内容覆盖住float的部分,这个时候就采取添加一个换行,并设置clear:both来帮助占位,来使后面的元素不被float(浮动)所影响。这个...

一篇文章带你了解CSS clear both清除浮动
CSS 清除浮动是解决在布局中出现的布局问题的关键技术。当使用浮动(float)来排列元素时,它们会脱离正常文档流,影响到周围的元素。此时,为了保持正常的布局,需要使用clear属性来清除浮动。clear属性用于指定元素旁边不能放置浮动元素。它有三个可能的值:left、right 和 both。当设置为both时,元素旁边...

css中clear的什么作用?
css中clear的作用是清除元素的浮动效果。left 在左侧不允许浮动元素。right 在右侧不允许浮动元素。both 在左右两侧均不允许浮动元素(这时该元素会独占一行了)。注:对第一个元素设置clear,对其后面元素不起作用。

相似回答