css 为什么此按钮的行为与范围不同?[duplicate]

q5iwbnjs  于 2023-01-06  发布在  其他
关注(0)|答案(1)|浏览(87)
    • 此问题在此处已有答案**:

Flex / Grid layouts not working on button or fieldset elements(3个答案)
14小时前关门了。
在代码中:tailwind play,这两个元素之间唯一的变化是:

span

代替

button

我需要的是按钮填充所有的导航栏高度,像跨度之一(没有红色背景可见)。
为什么不呢?

<div class="top-0 flex h-20 w-full justify-between bg-white">
  <span class="flex bg-red-400">
    <a class="flex items-center bg-green-400 px-6">
      <span>Hello</span>
    </a>
  </span>

  <button class="flex bg-red-400">
    <a class="flex items-center bg-green-400 px-6">
      <span>Hello</span>
    </a>
  </button>
</div>
z31licg0

z31licg01#

因为根据spanbutton的文档

HTML元素是一个用于描述内容的通用内联容器,它本身并不表示任何内容。它可用于对元素进行分组以实现样式化目的(使用class或id属性)

span具有此处指定的属性flex。尝试从span中删除类flex,您会发现跨度也仅使用a标记所需的高度。flex是推动span以完成parent高度的类

没有flex类的输出范围:

而在button中,它有自己的属性,并且不像span那样完整,默认情况下,它只使用子对象所需的高度。

溶液

<button><a>标记内使用:h-full

button更改为div

输出:

代码:

<div class="top-0 flex h-20 w-full justify-between bg-white">
  <span class="flex bg-red-400">
    <a class="flex items-center bg-green-400 px-6">
      <span>Hello</span>
    </a>
  </span>

  <button class="flex bg-red-400">
    <a class="flex h-full items-center bg-green-400 px-6"> 👈 add h-full hear for a to use the entire height
      <span>Hello</span>
    </a>
  </button>
</div>

相关问题