为了账号安全,请及时绑定邮箱和手机立即绑定

块内容不在块边框内,如8、9行所示

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>不定宽块状元素水平居中</title>
<style>
.container{
    /*border:1px solid red;*/
    /*此语句写在第一行会边框与内容错位,写在最后一行,ul内容会不完整,只输出2和3*/
    float:left;
	position:relative;
	left:50%
}

.container ul{
	list-style:none;
	margin:0;
	padding:0;
	position:relative;
	left:-50%;
}
.container li{float:left;display:inline;margin-right:8px;}


/*下面是代码任务区*/
.wrap{
    position:relative;
    float:left;
    left:50%;
}
.wrap-center{
    /*background:#ccc;*/
    border:1px solid blue;
    position:relative;
    float:left;
    left:-50%;
}
</style>
</head>

<body>
<div class="container">
	<ul>
    	<li><a href="#">1</a></li>
        <li><a href="#">2</a></li>
        <li><a href="#">3</a></li>
    </ul>
</div>

<!--下面是代码任务区-->
<div class="wrap">
    <div class="wrap-center">我们来学习一下这种方法。</div>
</div>
</body>
</html>

如上所示,当对.container块第一行输入border:1px solid red;后,块内容与块边框错位。而border:1px solid red;出现在最后一行时,ul内容会不完整,只输出2和3,且不显示边框。

正在回答

1 回答

先说第二问:border:1px solid red;出现最后一行时的错误应该是你漏加分号在left:50%后面,如果加上分号,border:1px solid red;出现的位置是不会影响显示的。

第一问:错位的问题,按我的理解这是这个方法正确的现实结果。这个方法就是通过父元素最左对齐中线,子元素向左移动自身宽度50%来实现,即子元素(本例中ul)是中线对齐window中线,而父元素(本例中.container)是最左对齐window中线,所以子元素和父元素的位置是错位的是正确显示的结果。

0 回复 有任何疑惑可以回复我~
#1

LAIHONGWEI0

打了错字,现实结果->显示结果
2017-02-12 回复 有任何疑惑可以回复我~
#2

昵称是JaVa 提问者

非常感谢!
2017-02-12 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

块内容不在块边框内,如8、9行所示

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信