基本上我有一个带有这个 CSS 的 div:
.mydiv{
position:absolute;
top:0;
left:0;
width:100%;
padding:7px;
}
由于填充,浏览器显示水平(宽度 100% + 7px)
看看这里:http: //jsfiddle.net/3FrLq/
我怎样才能让那个 div 不显示水平条?(无需在里面添加另一个 div?)
基本上我有一个带有这个 CSS 的 div:
.mydiv{
position:absolute;
top:0;
left:0;
width:100%;
padding:7px;
}
由于填充,浏览器显示水平(宽度 100% + 7px)
看看这里:http: //jsfiddle.net/3FrLq/
我怎样才能让那个 div 不显示水平条?(无需在里面添加另一个 div?)
正确的 HTML 语义几乎要求您在其中有另一个元素。在这种情况下,您的文本应该包含在<p>
标签中。
这样做会自动给你一些东西来设置margin
或padding
内部元素。
也就是说,如果您真的不能/不会有内部元素,请删除您的width
和 set right: 0
。绝对定位元素的妙处在于,如果将相对位置设置为 0,则可以“拉伸”元素(它也适用于顶部/底部)。
或者,如果您的元素没有绝对定位,您可以更改您的width: 100%
to max-width: 100%
(或添加该max-width
行,以处理旧版本 IE 中的错误,如果您必须返回那么远),这将硬盖总宽度。这个在这里起作用 - http://jsfiddle.net/3FrLq/5/。
您可以使用 box-sizing:border-box CSS 属性,它将从元素的实际宽度和高度中排除填充和边框:
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
box-sizing: border -box;
这是小提琴:http: //jsfiddle.net/3FrLq/3/
更多信息/浏览器对 box-sizing 的支持: https ://developer.mozilla.org/en-US/docs/CSS/box-sizing
您可以将 div 设置为显示inline-block
:
.mydiv{
display: inline-block;
position:absolute;
top:0;
left:0;
width:100%;
padding:7px;
}
这将显示它内联(不水平拉伸),同时允许您仍然将填充和边距应用于顶部和底部(不像display: inline
摆脱宽度指定&只指定0px
; 适用于所有 4 面
box-sizing
.left
&设置right
为0
,但不要设置 a width
。