我正在尝试创建一个在其两侧和顶部都有“突出显示”的框。
盒子的 CSS 非常简单,但是,既然我在设计中引入了这个“亮点”,它就给 CSS 增加了另一个层次的复杂性......
我尝试了很多东西,不确定它们是否有帮助,但这是我最近的尝试:
/* Define the Main Navigation Drop Downs */
#mn_navigation .dd {position:relative;width:226px;padding:29px 0 0;background:transparent url("//beta.example.co.uk/_images/_global/dd_handle.png") no-repeat;z-index:1000;}
#mn_navigation .dd nav {padding:30px 0;background:#3E5032 url("//beta.example.co.uk/_images/_global/dd_bg.png");border-radius:3px;}
#mn_navigation .dd nav a {font-family:Arial, Helvetica, sans-serif;font-size:12px;color:#fff !important;height:25px;line-height:25px;}
请注意,我已发布以上内容以表明我实际上已尝试自己对此进行排序。上面的代码可能甚至不能作为起点,因为可能需要重组 HTML!
这是当前的 HTML(可能需要重组):
<div id="dd_foo" class="dd">
<nav>
<a href="//beta.example.co.uk/menu/" title="LINK TITLE">LINK</a>
</nav>
</div>
这是一个可能的重组(类似的东西):
<div id="dd_foo" class="dd">
<div class="handle"><!-- Dropdown Handle --></div>
<nav>
<a href="//beta.example.co.uk/menu/" title="LINK TITLE">LINK</a>
</nav>
</div>
这就是我需要的盒子外观(请注意顶部和侧面中间的淡白色边框):
我还包含了拆分成单独元素( handle 和背景)的盒子
我想我可以看到如何通过巧妙的重叠和嵌套 div 来完成此操作,但理想情况下我真的不想求助于此...有人可以提出替代解决方案吗?
最佳答案
最简单的方法
您可以尝试使用简单的框阴影实现此目的:
.plaque {
box-shadow: inset 0 1px 1px 0 rgba(255, 255, 255, 0.32);
/*...*/
}
一个例子
这是一个 example using 1 class and a div在 jsbin 上。
复制粘贴代码
此代码仅适用于现代浏览器;它可能会导致 ie < 9 和其他不支持的浏览器爆炸。
.plaque:after {
top: -9px;
content: " ";
height: 11px;
width: 30px;
position: absolute;
pointer-events: none;
left: 50%;
margin-left: -15px;
display: block;
background-repeat: no-repeat;
}
.plaque {
width: 250px;
height: 100px;
display: block;
border: 0;
outline: 0;
padding: 12px 16px;
line-height: 1.4;
box-shadow: inset 0 1px 1px 0 rgba(255, 255, 255, 0.32);
border-radius: 5px;
border: 1px solid transparent;
font-family: sans-serif;
color: white;
font-size: 1.2em;
text-overflow: ellipsis;
position: relative;
top: 6px;
}
/* Use whatever background you want */
.plaque { background-color: green; }
.plaque:after { background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAALCAYAAACZIGYHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAcJJREFUeNqMUktPU0EU/mZuL6Up1RCjC4oRau4t4FJ84EKID/ZAjI9/6Mo/4MadG5dqJGjBatpyuY+2UNreeXDOBE0MNHGSSWZyzvnOd77zicdbd+EVJKyxGPSHmC4XIYSAMQYCoJhn81wJKSnHWhR8D1oZl69yhamiD8GBSefpywc2XKzjy7fP+PDuk5iUJxnksvvkxX1buxkgThOEt5exvr1qJ+XKy5CfvXpow9oSsn6GdqeF40EPK+GKY/ZfTNa3Vm1AI6TdFAeNfQgp0CKgrJehVg1AGl5gJLTWfxGfv15zI3BBnB5CehJGG5Cw8EjY6tw8KjNXsfv9K96//SguMOERgoU6+ic9NH8eQClNGzDQBMLb4FU1fzdxFB+hev0WNnbu2X802TxnkGQJoriNymwZHrFgAbhdidbOK+YTxR0ojLEc3sHmm0dOI8Gq10n9OI1xGLVcMvuGGYyHOYqlKcfK9wvOF3/i12ZvoFK+gsavPUgGSLsJkm4En4xDTqMi45iUZqZdd34zJY7L8was2enoGMHCEmS3l6LxYx9qrJ2I7FTNelBxPlKuYDgYu9nzUe6cenoygqF/J2o7AmcCDACumSjtgWp8aAAAAABJRU5ErkJggg==); }
关于html - 带有淡出边缘/边框的框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15788825/