Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 如何使用按钮元素上的显示:网格?_Html_Css_Css Grid - Fatal编程技术网

Html 如何使用按钮元素上的显示:网格?

Html 如何使用按钮元素上的显示:网格?,html,css,css-grid,Html,Css,Css Grid,我希望使用CSS网格为元素设置样式 我知道用户代理样式表有一些默认值,但我找不到合适的样式表来覆盖 它应该是这样的-事实上,如果我设计一个div,它确实是这样的: 但是,按钮的样式如下所示: 以下是我的CSS: button, .button { display: grid; justify-content: left; align-items: center; grid-auto-flow: column; grid-template-columns: 80px 1fr;

我希望使用CSS网格为元素设置样式

我知道用户代理样式表有一些默认值,但我找不到合适的样式表来覆盖

它应该是这样的-事实上,如果我设计一个div,它确实是这样的:

但是,按钮的样式如下所示:

以下是我的CSS:

button, .button {
  display: grid;
  justify-content: left;
  align-items: center;
  grid-auto-flow: column;
  grid-template-columns: 80px 1fr;
}
和HTML:

How buttons look:

<button>
  <h1>
    hello
  </h1>
  <h2>
    world
  </h2>
</button>

How divs look, and how I want buttons to look:

<div class="button">
  <h1>
    hello
  </h1>
  <h2>
    world
  </h2>
</div>
我的风格适用于div,但不适用于按钮


如何使用CSS网格设置按钮样式?

看来您只需添加一个字体大小来覆盖浏览器默认值,并将h1和h2向左对齐即可。我还建议更新网格模板列:auto1fr;这将允许第一个元素,在本例中,您的h1是需要的任何大小

<button>
  <div class="button">
    <h1>
      hello
    </h1>
    <h2>
      world
    </h2>
  </div>
</button>

似乎是复制版的某种缺陷:committeed@Michael_B-一个小注释,关于显示的评论没有参考:网格不是设计用于按钮的,浏览器只是需要并且正在修复它。我完全同意这是个骗局。事实上,迈克,我的答案中包括了这些参考资料。在列出的bug报告中,您会发现:这实际上是HTML规范所要求的,几个HTML容器元素是特殊的,并且有效地忽略了它们的CSS显示值。显示可以应用于子元素,因此没有网格或flex。从重新设置边距、填充和框大小开始:绕过bug,而不是尝试修复它;尝试重新设计元素的样式通常是个坏主意。它们应该是可识别的,以避免欺骗用户。作为浏览器的一部分,这并不能解决问题:对不起,我只是在Firefox中查看。有些浏览器会用按钮做一些奇怪的事情,其中一个奇怪的事情就是Chrome对你的按钮做了什么。我已经更新了我的答案,在你的按钮中添加了div.button,并解决了这个问题。
button {
  margin: 12px;
  padding: 12px;
  font-family: "Helvetica";
  background-color: #999;
  width: 200px;
  border: 1px solid black;
  display: block;
  font-size: 1em;
}

.button {
  display: grid;
  justify-content: left;
  align-items: center;
  grid-template-columns: auto 1fr;
}

h1, h2 {
  text-align: left;
}