我试图让所有这些链接在使用内联块的5列网格中完美排列。然而,似乎在顶行和它下面的行之间存在非常小的 - 可能是1px - 未对准,我想知道是否有人可以告诉我为什么会发生这种情况。这是一个jsFiddle,代码如下。
HTML:
<div class="app-control-btns-wrp">
<a href='javascript:;' class="app-control-btns">Link1</a>
<a href='javascript:;' class="app-control-btns">Link2</a>
<a href='javascript:;' class="app-control-btns">Link3</a>
<a href='javascript:;' class="app-control-btns">Link4</a>
</div>
<div class='char-input-btns-wrp'>
<div class='rows' >
<a href='javascript:;' class="char-input-btns">A</a>
<a href='javascript:;' class="char-input-btns">B</a>
<a href='javascript:;' class="char-input-btns">C</a>
<a href='javascript:;' class="char-input-btns">D</a>
<a href='javascript:;' class="char-input-btns">E</a>
</div>
</div>
CSS(包括重置文件):
/*
HTML5 Reset :: style.css
----------------------------------------------------------
We have learned much from/been inspired by/taken code where offered from:
Eric Meyer :: http://meyerweb.com
HTML5 Doctor :: http://html5doctor.com
and the HTML5 Boilerplate :: http://html5boilerplate.com
-------------------------------------------------------------------------------*/
/* Let's default this puppy out
-------------------------------------------------------------------------------*/
html, body, body div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, figure, footer, header, menu, nav, section, time, mark, audio, video, details, summary {
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
vertical-align: baseline;
background: transparent;
}
/* consider resetting the default cursor: https://gist.github.com/murtaugh/5247154 */
article, aside, figure, footer, header, nav, section, details, summary {display: block;}
/* Responsive images and other embedded objects
Note: keeping IMG here will cause problems if you're using foreground images as sprites.
If this default setting for images is causing issues, you might want to replace it with a .responsive class instead. */
img,
object,
embed {max-width: 100%;}
/* force a vertical scrollbar to prevent a jumpy page */
html {overflow-y: scroll;}
/* we use a lot of ULs that aren't bulleted.
don't forget to restore the bullets within content. */
ul {list-style: none;}
blockquote, q {quotes: none;}
blockquote:before,
blockquote:after,
q:before,
q:after {content: ''; content: none;}
a {margin: 0; padding: 0; font-size: 100%; vertical-align: baseline; background: transparent;}
del {text-decoration: line-through;}
abbr[title], dfn[title] {border-bottom: 1px dotted #000; cursor: help;}
/* tables still need cellspacing="0" in the markup */
table {border-collapse: collapse; border-spacing: 0;}
th {font-weight: bold; vertical-align: bottom;}
td {font-weight: normal; vertical-align: top;}
hr {display: block; height: 1px; border: 0; border-top: 1px solid #ccc; margin: 1em 0; padding: 0;}
input, select {vertical-align: middle;}
pre {
white-space: pre; /* CSS2 */
white-space: pre-wrap; /* CSS 2.1 */
white-space: pre-line; /* CSS 3 (and 2.1 as well, actually) */
word-wrap: break-word; /* IE */
}
input[type="radio"] {vertical-align: text-bottom;}
input[type="checkbox"] {vertical-align: bottom;}
.ie7 input[type="checkbox"] {vertical-align: baseline;}
.ie6 input {vertical-align: text-bottom;}
select, input, textarea {font: 99% sans-serif;}
table {font-size: inherit; font: 100%;}
small {font-size: 85%;}
strong {font-weight: bold;}
td, td img {vertical-align: top;}
/* Make sure sup and sub don't screw with your line-heights
gist.github.com/413930 */
sub, sup {font-size: 75%; line-height: 0; position: relative;}
sup {top: -0.5em;}
sub {bottom: -0.25em;}
/* standardize any monospaced elements */
pre, code, kbd, samp {font-family: monospace, sans-serif;}
/* hand cursor on clickable elements */
.clickable,
label,
input[type=button],
input[type=submit],
input[type=file],
button {cursor: pointer;}
/* Webkit browsers add a 2px margin outside the chrome of form elements */
button, input, select, textarea {margin: 0;}
/* make buttons play nice in IE */
button,
input[type=button] {width: auto; overflow: visible;}
/* scale images in IE7 more attractively */
.ie7 img {-ms-interpolation-mode: bicubic;}
/* prevent BG image flicker upon hover
(commented out as usage is rare, and the filter syntax messes with some pre-processors)
.ie6 html {filter: expression(document.execCommand("BackgroundImageCache", false, true));}
*/
/* let's clear some floats */
.clearfix:before, .clearfix:after { content: "\0020"; display: block; height: 0; overflow: hidden; }
.clearfix:after { clear: both; }
.clearfix { zoom: 1; }
*, *:before, *:after {
-moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box;
}
.app-wrp{
border:1px solid grey;
width:50%;
border:1px solid grey;
margin:1em auto;
}
.app-header{
width:100%;
padding:1em;
border-bottom:1px solid grey;
background: #ccc;
}
.app-body{
}
#word{
text-align:center;
width:100%;
padding:3em 0;
border-bottom:1px solid grey;
}
#word > p{
font-size:3em;
line-height:1.3em;
}
.char-input-btns-wrp, .app-control-btns-wrp{
width:100%;
}
.app-control-btns-wrp{
border-bottom:1px solid grey;
}
.char-input-btns, .app-control-btns{
text-align:center;
display:inline-block;
text-decoration:none;
font-size:2em;
margin-right:-4px;
}
.app-control-btns{
border-right:1px solid grey;
width:20%;
}
.app-control-btns:last-child{
border-right:none;
width:40%;
}
.char-input-btns{
width:20%;
border-left: 1px solid grey;
border-top: 1px solid grey;
color: #424242;
background:yellow;
}
.char-input-btns:active{
background:#3399bb;
color:#fff;
}
.char-input-btns:last-child{
border-right: 0;
}
.char-input-btns:first-child{
border-left: 0;
}
.rows{
width:100%;
background:pink;
}
答案 0 :(得分:1)
您的元素没有相同的边框规则。您的第一行使用border-right
,而您的底行使用border-top
和border-left
。因为你也有box-sizing:border-box
,这意味着结果会被一个偏移。
使用一致的边框来获得一致的结果。
答案 1 :(得分:1)
而不是为您的char-input-btns类提供border-left使用border-right。更新以下课程
.char-input-btns{
width:20%;
border-right: 1px solid grey;
border-top: 1px solid grey;
color: #424242;
background:yellow;
}