html - 浏览器在代码中没有空格的地方放置空格

标签 html

为什么以下标记在每个 <li></li> 之后产生一个空格, 当源代码中没有空格时?如果我将它们全部放在一行中,则在预览页面时空格会消失。但为什么浏览器将我的制表符读取为空格?

(您可以在第一张图片左侧的服务旁边看到一个边框。边框和服务之间是空格。图片 2 中没有。)

enter image description here

<nav>
    <ul>
        <li><a href="#" class="active">HOME</a></li>
        <li><a href="#">SERVICES</a></li>
        <li><a href="#">PRODUCTS</a></li>
        <li><a href="#">ABOUT</a></li>
        <li><a href="#">CONTACT</a></li>
        <li><a href="#">LIKE US</a></li>
    </ul>
</nav>

这是移除了所有标签的情况:

enter image description here

<nav>
    <ul>
        <li><a href="#" class="active">HOME</a></li><li><a href="#">SERVICES</a></li><li><a href="#">PRODUCTS</a></li><li><a href="#">ABOUT</a></li><li><a href="#">CONTACT</a></li><li><a href="#">LIKE US</a></li>
    </ul>
</nav>

编辑:

浏览器是 OSX Lion 上的 Safari 5.1.5。编辑是 Espresso。还尝试了 TextMate。这是导航的 CSS。

nav {
    position: relative;
    width: 960px;
    padding: 0 30px;
    background: #281601; /* Old browsers */
    background: -moz-linear-gradient(left,  #3f2c16 0%, #281601 5%, #281601 95%, #3f2c16 100%); /* FF3.6+ */
    background: -webkit-gradient(linear, left top, right top, color-stop(0%,#3f2c16), color-stop(5%,#281601), color-stop(95%,#281601), color-stop(100%,#3f2c16)); /* Chrome,Safari4+ */
    background: -webkit-linear-gradient(left,  #3f2c16 0%,#281601 5%,#281601 95%,#3f2c16 100%); /* Chrome10+,Safari5.1+ */
    background: -o-linear-gradient(left,  #3f2c16 0%,#281601 5%,#281601 95%,#3f2c16 100%); /* Opera 11.10+ */
    background: -ms-linear-gradient(left,  #3f2c16 0%,#281601 5%,#281601 95%,#3f2c16 100%); /* IE10+ */
    background: linear-gradient(left,  #3f2c16 0%,#281601 5%,#281601 95%,#3f2c16 100%); /* W3C */
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#3f2c16', endColorstr='#3f2c16',GradientType=1 ); /* IE6-9 */
    font-family: 'Crimson Text', serif;
    color: #fff;
}

nav:before {
    position: absolute;
    left: -12px;
    top: 0px;
    content: url('../img/nav-left.png');
}

nav:after {
    position: absolute;
    left: 960px;
    top: 0px;
    content: url('../img/nav-right.png');
}

nav ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

nav ul li {
    display: inline-block;
}

nav ul li a, nav ul li a:visited {
    display: block;
    color: #c7beb4;
    text-decoration: none;
    font-size: 95%;
    letter-spacing: 0.08em;
    padding: 12px 20px;
    border-right: 1px solid #3b2b18;
}

nav ul li:first-child a:before {
    content: url('../img/nav-icon-home.png');
    margin: 0px 8px 0 0;
}

nav ul li:first-child a:hover:before {
    content: url('../img/nav-icon-home-active.png');
}

nav ul li:last-child {
    float: right;
}

nav ul li:last-child a {
    border:none;
}

nav ul li:last-child a:before {
    content: url('../img/nav-icon-facebook.png');
    margin: 0px 8px 0 0;
}

nav ul li:last-child a:hover:before {
    content: url('../img/nav-icon-facebook-active.png');
}

nav ul li a:hover {
    background: #c7beb4;
    color: #281601;
    box-shadow: inset 0 0 15px rgba(40,22,1,0.5);
}

最佳答案

将 li 的显示更改为 display:table-cell 而不是 display:inline-block。

关于html - 浏览器在代码中没有空格的地方放置空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10079037/

相关文章:

javascript - 如何调整动画的速度?

html - 如何将头像图片中的文字居中

javascript - 工具提示随 d3 地理 map 缩放(缩放)

javascript - 如何防止 Leaflet.js 重新加载 Electron 应用程序?

jquery - 如何防止使用jquery提交表单?

javascript - 如何使用 jquery 在文本框中只允许数字和 2 位小数

javascript - HTML CSS如何给元素添加渐变透明度

javascript - 使用视频循环绘制 Canvas

javascript - Chart.js 图例左侧对齐

html - 响应式页脚设计 - 包装页脚元素