css - 是否可以创建横跨 CSS 网格中所有行的垂直文本?

标签 css css-grid

希望为网格创建节标题(而不是通过将其放在节上方来占用垂直空间),如下所示:

enter image description here

当然很容易让第一列跨越 grid-rows: 1/span 3 的行,但是如果我转换文本并对齐/对齐它,div 不会接受占满列空间,因此设置背景/边框看起来不正确。

See trial pen

body {
  padding: 1em;
  font-family: sans-serif;
}

.my-grid {
  display: grid;
  grid-template-columns: 2rem 100px 10rem;
  background-color: #eee
}

.my-grid>* {
  border: 1px solid #ccc;
}

.section-title {
  grid-row: 1 / span 5;
  align-self: center;
  justify-self: center;
  transform: rotate(270deg);
  background-color: papayawhip;
  text-transform: uppercase;
}

input {
  border: 2px solid #000;
}
<div class="my-grid">
  <div class="section-title">Address</div>
  <div>Address 1</div>
  <input type="text">
  <div>Address 2</div>
  <input type="text">
  <div>City</div>
  <input type="text">
  <div>State</div>
  <input type="text">
  <div>Zip Code</div>
  <input type="text">
</div>

最佳答案

是的,使用writing-mode

The writing-mode CSS property defines whether lines of text are laid out horizontally or vertically and the direction in which blocks progress.

MDN

body {
  padding: 1em;
  font-family: sans-serif;
}

.my-grid {
  display: grid;
  grid-template-columns: 2rem 100px 10rem;
  background-color: #eee
}

.my-grid>* {
  border: 1px solid #ccc;
}

.section-title {
  grid-row: 1 / span 5;
  text-align: center;
  writing-mode:vertical-rl; /* vertical text */
  line-height:2rem; /* center in div */
  transform:rotate(180deg); /* spin to orient as required */
  background-color: papayawhip;
  text-transform: uppercase;
}

input {
  border: 2px solid #000;
}
<div class="my-grid">
  <div class="section-title">Address</div>
  <div>Address 1</div>
  <input type="text">
  <div>Address 2</div>
  <input type="text">
  <div>City</div>
  <input type="text">
  <div>State</div>
  <input type="text">
  <div>Zip Code</div>
  <input type="text">
</div>

关于css - 是否可以创建横跨 CSS 网格中所有行的垂直文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47945353/

相关文章:

css - 用变量编写 SASS 循环

html - 如何在父div中包含文本框

Linux Firefox 上的 Jquery slideToggle 字体问题

html - 为什么使用具有相同类但不同选择器的网格区域以相反顺序显示的网格模板区域?

css - 在网格区域中定位元素

html - 固定图像背景

javascript - 如何使我的图像响应?

html - 是否可以在 CSS-Grid-Cell 中放置多个元素而不重叠?

css - 如何将一个 flex 元素对齐到容器顶部,而其他元素遵循 justify-content : center?

javascript - CSS Grid - 突出显示单元格直到悬停的单元格