我发现如果显示内联块的.mazeSpace的溢出属性设置为隐藏,那么mazeSpace和mazeRow之间将存在一些间隙,这是显示设置为阻止的父框。
为什么会这样呢?如果是BFC问题?
我已经将我的代码放到[CodePen](
* {
box-sizing: border-box;
}
.maze {
border: 5px solid #292929;
display: inline-block;
vertical-align: top;
}
.maze .mazeRow .mazeSpace {
display: inline-block;
border: 5px solid #F8F8F8;
width: 2em;
height: 2em;
overflow: hidden;
line-height: 2em;
font-size: 2em;
text-align: center;
position: relative;
}
.maze .mazeRow .mazeSpace.north {
border-top-color: #292929;
}
.maze .mazeRow .mazeSpace.east {
border-right-color: #292929;
}
.maze .mazeRow .mazeSpace.south {
border-bottom-color: #292929;
}
.maze .mazeRow .mazeSpace.west {
border-left-color: #292929;
}
.maze .mazeRow .mazeSpace i {
display: block;
position: absolute;
width: 2em;
color: #AAA;
}
.maze .mazeRow .mazeSpace i.robot {
color: #292929;
}
div.actions {
margin: 0;
padding: 2em;
list-style: none;
display: inline-block;
vertical-align: top;
}
div.actions i.robot {
display: block;
text-align: center;
font-size: 3em;
margin-top: .5em;
}
div.actions .btn {
display: block;
margin-bottom: .5em;
}
.btn {
display: inline-block;
*display: inline;
padding: 4px 12px;
margin-bottom: 0;
*margin-left: .3em;
font-size: 14px;
line-height: 20px;
*line-height: 20px;
color: #333333;
text-align: center;
text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
vertical-align: middle;
cursor: pointer;
background-color: #f5f5f5;
*background-color: #e6e6e6;
background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6);
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));
background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6);
background-image: -o-linear-gradient(top, #ffffff, #e6e6e6);
background-image: linear-gradient(to bottom, #ffffff, #e6e6e6);
background-repeat: repeat-x;
border: 1px solid #bbbbbb;
*border: 0;
border-color: #e6e6e6 #e6e6e6 #bfbfbf;
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
border-bottom-color: #a2a2a2;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
*zoom: 1;
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
-moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
}
.btn:hover,
.btn:active,
.btn.active,
.btn.disabled,
.btn[disabled] {
color: #333333;
background-color: #e6e6e6;
*background-color: #d9d9d9;
}
.btn:hover {
color: #333333;
text-decoration: none;
background-color: #e6e6e6;
*background-color: #d9d9d9;
/* Buttons in IE7 don't get borders, so darken on hover */
background-position: 0 -15px;
-webkit-transition: background-position 0.1s linear;
-moz-transition: background-position 0.1s linear;
-o-transition: background-position 0.1s linear;
transition: background-position 0.1s linear;
}
.btn:focus {
outline: thin dotted #333;
outline: 5px auto -webkit-focus-ring-color;
outline-offset: -2px;
}
.btn.active,
.btn:active {
background-color: #e6e6e6;
background-color: #d9d9d9 \9;
background-image: none;
outline: 0;
-webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
-moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
}
<html><head lang="en">
<meta charset="UTF-8">
<title></title>
<style id="style-1-cropbar-clipper">/* Copyright 2014 Evernote Corporation. All rights reserved. */
.en-markup-crop-options {
top: 18px !important;
left: 50% !important;
margin-left: -100px !important;
width: 200px !important;
border: 2px rgba(255,255,255,.38) solid !important;
border-radius: 4px !important;
}
.en-markup-crop-options div div:first-of-type {
margin-left: 0px !important;
}
</style></head>
<body>
<div id="page"><div class="maze"><div class="mazeRow"><div class="mazeSpace north west"> </div><div class="mazeSpace north south"> </div><div class="mazeSpace north south"> </div><div class="mazeSpace north east"> </div><div class="mazeSpace north west"> </div><div class="mazeSpace north south"> </div><div class="mazeSpace north south east"> </div></div><div class="mazeRow"><div class="mazeSpace south west"> </div><div class="mazeSpace north"> </div><div class="mazeSpace north east"> </div><div class="mazeSpace south west"> </div><div class="mazeSpace east"> </div><div class="mazeSpace north west"> </div><div class="mazeSpace north south east"> </div></div><div class="mazeRow"><div class="mazeSpace north west"> </div><div class="mazeSpace south east"> </div><div class="mazeSpace south west"> </div><div class="mazeSpace north south east"> </div><div class="mazeSpace west"> </div><div class="mazeSpace south east"> </div><div class="mazeSpace north east west"> </div></div><div class="mazeRow"><div class="mazeSpace west"> </div><div class="mazeSpace north south"> </div><div class="mazeSpace north east"> </div><div class="mazeSpace north west"> </div><div class="mazeSpace south east"> </div><div class="mazeSpace north west"> </div><div class="mazeSpace east"> </div></div><div class="mazeRow"><div class="mazeSpace south east west"><i class="start icon-screenshot"></i> </div><div class="mazeSpace north south west"> </div><div class="mazeSpace south east"> </div><div class="mazeSpace south west"> </div><div class="mazeSpace north south"> </div><div class="mazeSpace south east"> </div><div class="mazeSpace south east west"><i class="end icon-remove-circle"></i> </div></div></div><div class="actions"><a class="btn">Turn Left</a><a class="btn">Turn Right</a><a class="btn">Place in Maze</a><i class="robot icon-user"></i></div></div>
</body></html>
)。
它似乎可以在Safari中正确渲染,而不能在chrome中渲染(版本41.0.2272.118(64位))。
最佳答案
在line height: 0
类中提及.maze
,它将解决您的问题
* {
box-sizing: border-box;
}
.maze {
border: 5px solid #292929;
display: inline-block;
vertical-align: top;
line-height:0;
}
.maze .mazeRow .mazeSpace {
display: inline-block;
border: 5px solid #F8F8F8;
width: 2em;
height: 2em;
overflow: hidden;
line-height: 2em;
font-size: 2em;
text-align: center;
position: relative;
}
.maze .mazeRow .mazeSpace.north {
border-top-color: #292929;
}
.maze .mazeRow .mazeSpace.east {
border-right-color: #292929;
}
.maze .mazeRow .mazeSpace.south {
border-bottom-color: #292929;
}
.maze .mazeRow .mazeSpace.west {
border-left-color: #292929;
}
.maze .mazeRow .mazeSpace i {
display: block;
position: absolute;
width: 2em;
color: #AAA;
}
.maze .mazeRow .mazeSpace i.robot {
color: #292929;
}
div.actions {
margin: 0;
padding: 2em;
list-style: none;
display: inline-block;
vertical-align: top;
}
div.actions i.robot {
display: block;
text-align: center;
font-size: 3em;
margin-top: .5em;
}
div.actions .btn {
display: block;
margin-bottom: .5em;
}
.btn {
display: inline-block;
*display: inline;
padding: 4px 12px;
margin-bottom: 0;
*margin-left: .3em;
font-size: 14px;
line-height: 20px;
*line-height: 20px;
color: #333333;
text-align: center;
text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
vertical-align: middle;
cursor: pointer;
background-color: #f5f5f5;
*background-color: #e6e6e6;
background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6);
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));
background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6);
background-image: -o-linear-gradient(top, #ffffff, #e6e6e6);
background-image: linear-gradient(to bottom, #ffffff, #e6e6e6);
background-repeat: repeat-x;
border: 1px solid #bbbbbb;
*border: 0;
border-color: #e6e6e6 #e6e6e6 #bfbfbf;
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
border-bottom-color: #a2a2a2;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
*zoom: 1;
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
-moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
}
.btn:hover,
.btn:active,
.btn.active,
.btn.disabled,
.btn[disabled] {
color: #333333;
background-color: #e6e6e6;
*background-color: #d9d9d9;
}
.btn:hover {
color: #333333;
text-decoration: none;
background-color: #e6e6e6;
*background-color: #d9d9d9;
/* Buttons in IE7 don't get borders, so darken on hover */
background-position: 0 -15px;
-webkit-transition: background-position 0.1s linear;
-moz-transition: background-position 0.1s linear;
-o-transition: background-position 0.1s linear;
transition: background-position 0.1s linear;
}
.btn:focus {
outline: thin dotted #333;
outline: 5px auto -webkit-focus-ring-color;
outline-offset: -2px;
}
.btn.active,
.btn:active {
background-color: #e6e6e6;
background-color: #d9d9d9 \9;
background-image: none;
outline: 0;
-webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
-moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
}
<html><head lang="en">
<meta charset="UTF-8">
<title></title>
<style id="style-1-cropbar-clipper">/* Copyright 2014 Evernote Corporation. All rights reserved. */
.en-markup-crop-options {
top: 18px !important;
left: 50% !important;
margin-left: -100px !important;
width: 200px !important;
border: 2px rgba(255,255,255,.38) solid !important;
border-radius: 4px !important;
}
.en-markup-crop-options div div:first-of-type {
margin-left: 0px !important;
}
</style></head>
<body>
<div id="page"><div class="maze"><div class="mazeRow"><div class="mazeSpace north west"> </div><div class="mazeSpace north south"> </div><div class="mazeSpace north south"> </div><div class="mazeSpace north east"> </div><div class="mazeSpace north west"> </div><div class="mazeSpace north south"> </div><div class="mazeSpace north south east"> </div></div><div class="mazeRow"><div class="mazeSpace south west"> </div><div class="mazeSpace north"> </div><div class="mazeSpace north east"> </div><div class="mazeSpace south west"> </div><div class="mazeSpace east"> </div><div class="mazeSpace north west"> </div><div class="mazeSpace north south east"> </div></div><div class="mazeRow"><div class="mazeSpace north west"> </div><div class="mazeSpace south east"> </div><div class="mazeSpace south west"> </div><div class="mazeSpace north south east"> </div><div class="mazeSpace west"> </div><div class="mazeSpace south east"> </div><div class="mazeSpace north east west"> </div></div><div class="mazeRow"><div class="mazeSpace west"> </div><div class="mazeSpace north south"> </div><div class="mazeSpace north east"> </div><div class="mazeSpace north west"> </div><div class="mazeSpace south east"> </div><div class="mazeSpace north west"> </div><div class="mazeSpace east"> </div></div><div class="mazeRow"><div class="mazeSpace south east west"><i class="start icon-screenshot"></i> </div><div class="mazeSpace north south west"> </div><div class="mazeSpace south east"> </div><div class="mazeSpace south west"> </div><div class="mazeSpace north south"> </div><div class="mazeSpace south east"> </div><div class="mazeSpace south east west"><i class="end icon-remove-circle"></i> </div></div></div><div class="actions"><a class="btn">Turn Left</a><a class="btn">Turn Right</a><a class="btn">Place in Maze</a><i class="robot icon-user"></i></div></div>
</body></html>
关于html - 溢出属性导致Chrome渲染错误,但在 Safari 中似乎还可以,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29772908/