如何在CSS网格的单元格中对齐元素? [英] How to align elements in cells of a css grid?

查看:99
本文介绍了如何在CSS网格的单元格中对齐元素?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

< pre class = snippet-code-css lang-css prettyprint-override> body {margin:0 auto;最大宽度:60%;}文本区域,输入,选择{宽度:100%; / *扩展网格项目的宽度* / box-sizing:border-box; / *包括填充/宽度边框* /}。wrapper {display:grid; grid-template-columns:1fr 1fr 1fr 30px; grid-template-rows:自动自动; / *更改* /边框:实线1px#000000; grid-gap:10px; / *网格间隙,以在需要时处理项目之间的空间* /填充:5px; / *包装器和网格项目之间的空间* /}。column1 {grid-column:1/2;}。column2 {grid-column:2/3;}。column3 {grid-column:3/4;}。column4 { grid-column:4/5;}。colspan2 {grid-column:2/4;网格行:2;}

 < div class = 包装器>< div class = column2>标头1< / div> < div class = column3>标头2< / div>< / div>< div class = wrapper> < div class = column1> <选择> < option> een< / option> < option> twee< / option> < / select> < / div> < div class = column2> <输入type = text value = col2 /> < / div> < div class = column3> <输入type = text value = col3 /> < / div> < div class = column4>(i)< / div> < div class = colspan2> < textarea>此处您好评论< / textarea> < / div>< / div>  



我有一个css网格布局,只想将我的标题元素对齐到右侧。我试过-> justify-items:end,但这塞满了整个网格。我如何才能对齐第2列和第3列中的标题项?

解决方案

您可以简单地考虑 text -align:right



  body {margin: 0自动;最大宽度:60%;}文本区域,输入,选择{宽度:100%; / *扩展网格项目的宽度* / box-sizing:border-box; / *包括填充/宽度边框* /}。wrapper {display:grid; grid-template-columns:1fr 1fr 1fr 30px; grid-template-rows:自动自动; / *更改* /边框:实线1px#000000; grid-gap:10px; / *网格间隙,以处理项目之间的空间(如果需要)* /填充:5px; / *包装器和网格项目之间的空间* /}。column1 {grid-column:1/2;}。column2 {grid-column:2/3; text-align:right;}。column3 {grid-column:3/4; text-align:right;}。column4 {grid-column:4/5;}。colspan2 {grid-column:2/4;网格行:2;}  

 < div class = 包装器>< div class = column2>标头1< / div> < div class = column3>标头2< / div>< / div>< div class = wrapper> < div class = column1> <选择> < option> een< / option> < option> twee< / option> < / select> < / div> < div class = column2> <输入type = text value = col2 /> < / div> < div class = column3> <输入type = text value = col3 /> < / div> < div class = column4>(i)< / div> < div class = colspan2> < textarea>此处您好评论< / textarea> < / div>< / div>  


body {
  margin: 0 auto;
  max-width: 60%;
}

textarea, input, select {
  width: 100%; /* extend the width of the grid item */
  box-sizing: border-box; /* including padding / border in width */
}

.wrapper {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 30px;
  grid-template-rows: auto auto; /* changed */
  border: solid 1px #000000;
  grid-gap: 10px; /* grid gap to handle spaces between items if needed */
  padding: 5px; /* space between wrapper and grid items */
}

.column1 {
  grid-column: 1/2;
}

.column2 {
  grid-column: 2/3;
}

.column3 {
  grid-column: 3/4;
}

.column4 {
  grid-column: 4/5;
}

.colspan2 {
  grid-column: 2/4;
  grid-row: 2;
}

<div class="wrapper">
<div class="column2">
   header 1
  </div>
  <div class="column3">
   header 2
  </div>
</div>
<div class="wrapper">
  <div class="column1">
    <select>
      <option>een</option>
      <option>twee</option>
    </select>
  </div>
  <div class="column2">
    <input type="text" value="col2" />
  </div>
  <div class="column3">
    <input type="text" value="col3" />
  </div>
  <div class="column4">(i)</div>
  <div class="colspan2">
    <textarea>Hello comments here</textarea>
  </div>
</div>

I have a css grid layout and want to align my header elements only to the right. I tried -> justify-items : end , but this stuffs up the whole grid. How can I just align the header items in column 2 and 3?

解决方案

You can simply consider text-align:right

body {
  margin: 0 auto;
  max-width: 60%;
}

textarea, input, select {
  width: 100%; /* extend the width of the grid item */
  box-sizing: border-box; /* including padding / border in width */
}

.wrapper {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 30px;
  grid-template-rows: auto auto; /* changed */
  border: solid 1px #000000;
  grid-gap: 10px; /* grid gap to handle spaces between items if needed */
  padding: 5px; /* space between wrapper and grid items */
}

.column1 {
  grid-column: 1/2;
}

.column2 {
  grid-column: 2/3;
  text-align:right;
}

.column3 {
  grid-column: 3/4;
  text-align:right;
}

.column4 {
  grid-column: 4/5;
}

.colspan2 {
  grid-column: 2/4;
  grid-row: 2;
}

<div class="wrapper">
<div class="column2">
   header 1
  </div>
  <div class="column3">
   header 2
  </div>
</div>
<div class="wrapper">
  <div class="column1">
    <select>
      <option>een</option>
      <option>twee</option>
    </select>
  </div>
  <div class="column2">
    <input type="text" value="col2" />
  </div>
  <div class="column3">
    <input type="text" value="col3" />
  </div>
  <div class="column4">(i)</div>
  <div class="colspan2">
    <textarea>Hello comments here</textarea>
  </div>
</div>

这篇关于如何在CSS网格的单元格中对齐元素?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆