【问题标题】:CSS - Why am I not able to set height and width of <a href> elements?CSS - 为什么我无法设置 <a href> 元素的高度和宽度?
【发布时间】:2010-04-14 14:25:12
【问题描述】:

我正在尝试使用以下 html 标记创建 css 按钮:

<a href="access.php" class="css_button_red">Forgot password</a>

但它最终不会比中间的文本大。即使我已经设置了班级的高度和宽度。

顺便说一句,您可以在这里预览问题,www.matkalenderen.no 注意第一个按钮,这是一个表单按钮,它使用它自己的类。起初我也尝试在 css 按钮上使用相同的类,但出现了同样的问题,所以我尝试将它们分成自己的类。以防发生某种崩溃。但无论如何也没关系。

我在这里错过了什么?

【问题讨论】:

    标签: html css


    【解决方案1】:

    正如其他人所说,默认情况下&lt;a&gt; 是一个内联元素,内联元素不能指定宽度或高度。您可以将其更改为像这样的块元素:

    a {
        display: block;
    }
    

    尽管它随后会(不出所料地)显示为一个独立的块,位于周围文本流之外。更好的解决方案是使用display: inline-block,这可能是两全其美的解决方案,具体取决于您的具体情况。

    请参阅PPK's writeup

    这个值的真正用途是当你想给一个内联元素一个宽度时。在某些情况下,某些浏览器不允许在真正的内联元素上设置宽度,但如果您切换到 display: inline-block,则可以设置宽度。

    【讨论】:

    • 哈哈!内联块为我修复了很多东西!仅使用 display:block 时,整个按钮未对齐。但现在,它遵循与表单按钮相同的流程 :) 谢谢!
    • 小心内联块。浏览器并不统一支持。了解您的分析并确保它在您网站的所有具有统计意义的浏览器中都能很好地显示。值得注意的是,IE 6 和 7 都缺乏可靠的内联块支持。见quirksmode.org/css/display.html#t03
    • @kingjeffrey Quirksmode 指出,IE6 和 7 只有在应用于非内联元素时才会出现内联块问题。因此,应用于&lt;a&gt; 时不会有问题。
    • 好的,似乎工作正常 :) 虽然我在将不可见边距应用于 元素时遇到了一些问题。但这可能是一个不同的问题:)
    【解决方案2】:

    因为 默认是内联元素。在 CSS 中定义 a { display:block; } 并应用高度和宽度设置。

    当然,你可能不想将所有的锚标签都声明为块级元素,所以根据需要按类或id进行过滤。

    【讨论】:

    • 谢谢,我想我已经尝试过了。现在突然之间它起作用了。伙计,这表明在编写 css 代码时拥有结构化思维是多么重要!
    【解决方案3】:

    我认为最合适的解决方案是display: inline-block;,它允许您为仍将被视为inline 元素的元素设置height

    【讨论】:

      猜你喜欢
      • 2016-03-17
      • 1970-01-01
      • 1970-01-01
      • 2014-03-18
      • 1970-01-01
      • 2011-09-03
      • 2020-02-08
      • 1970-01-01
      相关资源
      最近更新 更多