当前位置: 首页 > 面试题库 >

为什么锚标记不包含其包含元素的高度和宽度

姬阳曜
2023-03-14
问题内容

当我使用Chrome开发人员工具检查定位标记的大小时,它会向我显示144px*18px第一个元素和310px*18px第二个元素。

我想知道为什么它不包含包含元素的高度和宽度以及它是如何计算的。

.gallery {

    background-color: #abcdef;

}

.gallery img {

    display: inline-block;

    margin-left: 20px;

    margin-top: 20px;

}

.normal {

    height: 160px;

    width: 110px;

    border: 5px solid black;

}

.wide {

    height: 160px;

    width: 280px;

    border: 5px solid black;

}


<div class="gallery">

    <a href="#"> <img class="normal" src=""> </a>

    <a href="#"> <img class="wide" src=""> </a>

</div>

问题答案:

在CSS 2.1规范说

框内容区域的尺寸(内容宽度和内容高度)取决于几个因素:生成框的元素是否设置了“宽度”或“高度”属性,该框是否包含文本框或其他框,是否框是一个表格,等等。框的宽度和高度将在有关可视格式模型详细信息的章节中进行讨论。

所述<a>元件默认的显示值inline。它的内容参与布局,因此它是一个non-replaced元素。

对于高度,规格说明:

10.6.1内联非替换元素

‘height’属性不适用。内容区域的高度应基于字体,但是此规范未指定如何。

因此18px,是从字体度量中得出的单行文本得出的。较大的图像内容或包含的块大小都不起作用。

对于宽度,规范说

10.3.1内联非替换元素

‘width’属性不适用。“左边距”或“右边距”的“自动”计算值变为使用值“ 0”。

换句话说,宽度由<a>元素的内容,填充,边框和边距确定。

对于第一个<a>元素为114像素(内容-图像加一个空格)+ 20像素(左边距)+ 2x5像素(左右边框)= 144像素

对于第二个<a>元素,即280px(内容-图片)+ 20px(左侧边距)+ 2x5px(左右边框)= 310px

只需要考虑空间。元素是在嵌入式上下文中的行框中布置的,因此将删除第一个<a>元素的开头和第二个<a>元素的结尾处的空格。第一个<a>元素的末尾和第二个<a>元素的开始处的空间被折叠为一个空间。当空格折叠时,始终是第一个空格,在这种情况下,它是第一个<a>元素末尾的那个,因此这就是为什么空格参与第一个<a>元素的宽度而不参与第二个元素的宽度的原因。



 类似资料:
  • 问题内容: 我想问一下高度和漂浮物是如何工作的。我有一个外部div和一个内部div,其中包含内容。它的高度可能取决于内部div 的内容,但似乎我的内部div会溢出其外部div。正确的做法是什么? 问题答案: float大多数初学者都误解了该属性。好吧,到底是做float什么的?最初,float引入了该属性,以使文字围绕图像浮动left或浮动right。这是 @Madara Uchicha 的另一种

  • 问题内容: 当具有边距的元素包含在另一个元素中时,父级不会始终包裹/包含该边距。 许多事情将导致父母控制孩子的保证金: (这只是经过一点测试,毫无疑问,还有更多。) 我认为这与利润下降有关,但是: W3C规范页面没有此类行为的描述。 这里没有重叠的边距。 在此问题上,所有浏览器的行为似乎都是一致的。 该行为受到与边距无关的触发器的影响。 根据逻辑,默认元素应包含与溢出设置为自动元素不同的材料? 为

  • 我需要图像采取容器的整个宽度,除非结果的高度大于可用容器的视口高度。 基本上,我希望图像是响应性的,但它应该仍然适合屏幕。如果它不适合屏幕,它应该缩小,水平居中,最好在它的侧面添加黑色瓷砖。 当前,我的CSS类看起来是这样的: 我试着在图像或专用容器上使用max-height,但纯CSS似乎无法实现此功能。 澄清: 我事先不知道图像的尺寸,所以不能将它们放入一个预设大小的容器中。 基本上,我的目标

  • 问题内容: 在SO本身中进行了选择-由浏览器(当我们没有显式设置a 而是设置a时)为具有 子 容器 (相对于容器的高度百分比)的“高度计算” : __ 如果不设置高度,则进行设置,但不起作用,请注意,计算出的height值是我给定的。孩子们没有达到我给他们的50%的身高-见下文: 现在,我将其设置为有效!请参见下面的示例: 题: 所以我的问题是-这里发生了什么-我真的很惊讶!当我给它最小高度时,为

  • 正在寻找旧JSF页面的解决方案。我试图使用contains方法根据另一列是否包含单词red box来呈现组合框。 这一个工作和组合框被禁用。 但是,我也想在值不包含红色框时渲染它们,但随后将启用combox。 这是行不通的。 因此,我如何测试的任何想法都不包含特定的单词。我还尝试了choose test when,但由于第一个表。col4值只是一个空字符串。 有什么想法吗?谢谢。

  • 问题内容: 建立 Java不为JCE无限强度策略文件提供现成的支持 这样可以防止用户使用AES-256,这是广泛使用的加密标准中最大的密钥大小 不包括策略文件会导致许多问题: 意外的异常 不满意的解决方法 只需安装它们 使用不同的实现 使用可能违反Java许可协议的反射 JRE更新后损坏 安装后混乱 所有这些噪音导致程序损坏和/或错误 题 为什么不提供这些服务,将其视为败类? 问题答案: 事实证明