【问题标题】:How to correct css3 nav ul a:active background padding issue如何纠正 css3 nav ul a:active 背景填充问题
【发布时间】:2012-12-07 11:01:11
【问题描述】:

我正在开发我的网站,今天我的大脑崩溃了。

首先是我所在的位置: http://www.lenniemoore.com/home.html 以及相关的css文件: http://www.lenniemoore.com/assets/desktop.css

在我的导航栏菜单上,除了 a:active 元素之外,我已经设置了所有样式并使用背景颜色正常工作。当我在菜单项上单击或单击并按住鼠标按钮时,背景形状与其他元素的形状不同。

我认为这是一个填充问题,但我整天都在梳理我所有的 CSS,只是没有看到罪魁祸首。

这是来自 desktop.css 的相关 css 代码:

    ul{list-style-type:none;margin:0 0 5px -35px;}
    .content ul,.content ol{padding:0 15px 15px 40px;}
    #navigator nav{clear:both;width:950px;padding:4px 0;background:#06c;background:-moz-linear-gradient(-90deg,rgba(0,40,80,0),rgba(0,40,80,0.5)),#06c;background:-webkit-gradient(linear,left top,left bottom,from(rgba(0,40,80,0)),to(rgba(0,40,80,0.5))),#06c;background:-o-gradient(linear,left top,left bottom,from(rgba(0,40,80,0)),to(rgba(0,40,80,0.5))),#06c;overflow:auto;border-radius:20px;box-shadow:-3px 3px 2px rgba(64,64,55,0.4);}
    nav ul a,nav ul a:visited{padding:0;margin:0 0 2px 0;display:block;}
    nav li,nav li a{-moz-transition-duration:0.25s;-webkit-transition-duration:0.25s;-o-transition-duration:0.25s;}
    nav li{float:left;width:130px;padding:0 0 5px 0;margin:0 5px 0 0;}
    nav li a{display:block;text-align:center;line-height:normal;vertical-align:middle;font-size:120%;font-weight:bold; text-shadow:-2px 2px 0px rgba(0,0,0,1),0px 0px 5px rgba(0,0,0,1);text-decoration:none;color:#eee;}
    nav ul a,nav ul a:visited,nav ul a:focus,nav ul a:active,nav li,nav li.current{border-radius:13px;}
    nav ul a:focus,nav ul a:active,nav li.current,nav li:hover{box-shadow:0px 1px 5px black;}
    nav ul a:focus,nav ul a:active,nav li.current{background:#900;background:-moz-linear-gradient(-90deg,rgba(0,0,0,0.2),rgba(0,0,0,0)),#900;background:-webkit-gradient(linear,left top,left bottom,from(rgba(0,0,0,0.2)),to(rgba(0,0,0,0))),#900;background:-o-gradient(linear,left top,left bottom,from(rgba(0,0,0,0.2)),to(rgba(0,0,0,0))),#900;color:#eec;text-shadow:-1px 1px 0px rgba(0,0,0,1),-2px 2px 5px rgba(0,0,0,0.5);}
    nav li:hover{background:#ffd;background:-moz-linear-gradient(-90deg,rgba(0,0,0,0.2),rgba(0,0,0,0)),#ffd;background:-webkit-gradient(linear,left top,left bottom,from(rgba(0,0,0,0.2)),to(rgba(0,0,0,0))),#ffd;background:-o-gradient(linear,left top,left bottom,from(rgba(0,0,0,0.2)),to(rgba(0,0,0,0))),#ffd;}
    nav li:hover a{color:#900;text-shadow:-2px 2px 0px rgba(0,0,0,1),-3px 3px 5px rgba(0,0,0,0.5);}

任何帮助将不胜感激!

【问题讨论】:

    标签: html css background padding


    【解决方案1】:

    目前您在nav li 上设置了padding: 0 0 5px 0;。如果您将其删除,而是将其放在 nav ul a, nav ul a:visited 上,那么您的问题将得到解决。

    基本上,列表项上的填充意味着锚永远不会达到相同的高度。通过将填充放在锚点上,两个元素的高度相同。

    【讨论】:

    • 谢谢。我已经按照你的建议做了(这很有意义),但我仍然没有找到解决方案。今天早上深入研究 CSS 文件,看看我是否能找出问题所在......
    • 找到了!这是我在两个 css 文件之间进行的操作的组合,以及 nav ul a、nav ul a:visited 中的额外边距值
    • 酷,一切正常!奇怪的是我的解决方案没有奏效。它完美地解决了我的问题。我要删除我的答案吗?
    • 不,您的答案在正常情况下有效。请记住,我有两个 css 文件,normalize.css 和 desktop.css,这两个文件之间出现了一些冲突。
    • 是的,很抱歉没有在这方面做得更快。我实际上是一名视频游戏作曲家,而不是网页设计师。但我在技术上相当熟练,足以最终解决这些问题
    猜你喜欢
    • 1970-01-01
    • 2016-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多