我有以下代码
div {
width:200px;
border-bottom:1px solid magenta;
height:50px;
}
div的宽度是200px,所以边框底部也是200px,但是如果我只想要100px的边框底部,而不改变div宽度,我应该怎么做?
发布于 2011-12-20 17:16:35
您可以使用伪元素。例如。
div {
width : 200px;
height : 50px;
position: relative;
z-index : 1;
background: #eee;
}
div:before {
content : "";
position: absolute;
left : 0;
bottom : 0;
height : 1px;
width : 50%; /* or 100px */
border-bottom:1px solid magenta;
}
<div>Item 1</div>
<div>Item 2</div>
不需要使用额外的标记用于表示目的。:after也是从IE8支持的。
编辑:
如果需要右对齐的边框,只需用right: 0
更改left: 0
即可
如果需要一个居中对齐的边框,只需设置left: 50px;
发布于 2014-11-06 01:41:56
另一种方法(在现代浏览器中)是使用负扩散框阴影。查看更新后的小提琴:http://jsfiddle.net/WuZat/290/
box-shadow: 0px 24px 3px -24px magenta;
我认为最安全和最兼容的方式是上面公认的答案。我只是想分享另一种技巧。
发布于 2016-03-23 13:33:05
我在h3标签下添加了行,如下所示
<h3 class="home_title">Your title here</h3>
.home_title{
display:block;
}
.home_title:after {
display:block;
clear:both;
content : "";
position: relative;
left : 0;
bottom : 0;
max-width:250px;
height : 1px;
width : 50%; /* or 100px */
border-bottom:1px solid #e2000f;
margin:0 auto;
padding:4px 0px;
}
https://stackoverflow.com/questions/8572952
复制相似问题