html - 伪元素和填充

标签 html css padding pseudo-element

我想结合过渡和动画对伪元素进行一些练习。但是我有一个小问题。

看看这个:

HTML:

<nav id="navBar" class="clearfix">
  <a href="#" class="nav">Test</a>
</nav>

CSS:

.clearfix:after {
    content: ".";
    clear: both;
    display: block;
    visibility: hidden;
    height: 0px;
}
#navBar {
    width: 100%;
    padding: 30px;
    border-top: 1px solid #808080;
    border-bottom: 1px solid #808080;
    box-sizing: border-box;
}
#navBar a {
    text-decoration: none;
    display: inline-block;
}
a.nav {
    padding: 10px;
    background-color: #7492b6;
    color: #fff;
    float: left;
    font-weight: bold;
    font-size: 1em;
    min-width: 150px;
    text-align: center;
}
a.nav::before {
    content: "";
    display: block;
    position: relative;
    top: 0;
    left: 0;
    width: 100%;
    height: 3px;
    background-color: #fff;
    padding: 0;
}
a.nav::after {
    content: "";
    display: block;
    position: relative;
    top: 0;
    left: 0;
    width: 100%;
    height: 3px;
    background-color: #fff;
    padding: 0;
}

http://codepen.io/anon/pen/rVbeLa

两条红线是我的伪元素。但我希望它们的宽度为 100%,但它不能与填充结合使用。

它应该看起来像这样但是我没有填充:/
http://codepen.io/anon/pen/RPOaRj

我已经在 Firefox 39 和 Chrome 43 上测试过它,都在 OSX 优胜美地上。两者的结果相同。 知道如何解决这个问题吗?

干杯

最佳答案

你可以通过这样做来解决这个问题。
添加position:relative;<a> :

#navBar a {
    text-decoration: none;
    display: inline-block;
    position:relative;
}

然后,更改您的 :before:afterposition:absolute;并从顶部和底部改变它们的位置:

.navGroup1 a.nav::before {
    content: "";
    display: block;
    position: absolute;
    top: 10px;
    left: 0;
    width:100%;
    height: 3px;
    background-color: red;
}

.navGroup1 a.nav::after {
    content: "";
    display: block;
    position: absolute;
    bottom:10px;
    left: 0;
    width: 100%;
    height: 3px;
    background-color: red;
}

Updated Codepen

关于html - 伪元素和填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31968759/

相关文章:

html - 使用动画 css 属性不工作使 div 间歇性出现

ios - UICollectionViewCell contentView 填充

html - 表行,当向一个单元格添加填充时,整行会被下推

css - 如何在提交按钮上应用类,使其显示所需的提交图像

Html 防止 p 和 div 之间的换行

javascript - 如何使用js粘贴文本行?

html - 表格单元格 - 宽度 : 100% with table-layout: fixed;

javascript - jQuery - 动态创建的选择框在选择值时不会触发函数

html - 布局以填充除 Extjs 中的导航栏之外的所有浏览器窗口

html - 在 Firefox 上使用 box-sizing 填充改变 div 的大小