在文本列表上垂直对齐冒号

时间:2018-08-15 09:51:28

标签: html css materialize

我正在使用Materialize Framework进行网站项目。

我想在其中一行垂直对齐所有冒号。这是文本示例:

Project:Intimate House  
Location : Pulau Putri, Puri - West Jakarta - Indonesia  
Site Area : 160 sqm  
Building Area : 210 sqm  
Design Phase : 2016 
Construction Period : April 2016 - July 2017

这是我想要的垂直对齐冒号的结果

Project                : Intimate House  
Location               : Pulau Putri, Puri - West Jakarta - Indonesia  
Site Area              : 160 sqm  
Building Area          : 210 sqm  
Design Phase           : 2016 
Construction Period    : April 2016 - July 2017

下面是我尝试创建的代码(https://codepen.io/bukuchaga/pen/xJNdeq) HTML:

                    <h4><b>Intimate House</b><br></h4>
                    <ul>
                      <li><b>Project:</b>Intimate House</li>
                      <li><b>Location       :</b> Pulau Putri, Puri - West Jakarta - Indonesia</li>
                      <li><b>Site Area      :</b> 160 sqm</li>
                      <li><b>Building Area  :</b> 210 sqm</li>
                      <li><b>Design Phase   :</b> 2016</li>
                      <li><b>Construction Period :</b> April 2016 -  July 2017</li>
                    </ul>

根据之前的研究,我发现了一个可能与我的问题类似的问题。(Vertical align colon with numbers

问题是,在我尝试应用答案后,它仍无法在我的代码上正常工作,相反,这使我的文本行与应有的方式格格不入,并且我尝试了几次其他方法仍然无法正常工作。

谢谢。

3 个答案:

答案 0 :(得分:2)

我建议从HTML中删除冒号,而改用::after伪元素。

.alignMe b {
  display: inline-block;
  width: 50%;
  position: relative;
  padding-right: 10px; /* Ensures colon does not overlay the text */
}

.alignMe b::after {
  content: ":";
  position: absolute;
  right: 10px;
}
<ul class="alignMe">
  <li><b>Project</b> Intimate House</li>
  <li><b>Location</b> Pulau Putri, Puri - West Jakarta - Indonesia</li>
  <li><b>Site Area</b> 160 sqm</li>
  <li><b>Building Area</b> 210 sqm</li>
  <li><b>Design Phase</b> 2016</li>
  <li><b>Construction Period</b> April 2016 - July 2017</li>
</ul>

答案 1 :(得分:1)

将冒号移动到b之后的 并使用CSS表

ul {
  list-style: none;
  display: table;
}

li {
  display: table-row;
}

b {
  display: table-cell;
  padding-right: 1em;
}
<ul>
  <li><b>Project</b>: Intimate House</li>
  <li><b>Location</b>: Pulau Putri, Puri - West Jakarta - Indonesia</li>
  <li><b>Site Area</b>: 160 sqm</li>
  <li><b>Building Area</b>: 210 sqm</li>
  <li><b>Design Phase</b>: 2016</li>
  <li><b>Construction Period</b>: April 2016 - July 2017</li>
</ul>

答案 2 :(得分:0)

一种可行的方法是将min-width设置为<b>标记,并在其后添加一个冒号。简单的例子:

ul.info-list {
  list-style-type: none;
}
ul.info-list li b {
  position: relative;
  display: inline-block;
  min-width: 144px;
  margin-right: 4px;
}
ul.info-list li b:after {
  content: ":";
  position: absolute;
  right: 0;
}
<ul class="info-list">
  <li><b>Project</b>Intimate House</li>
  <li><b>Location</b> Pulau Putri, Puri - West Jakarta - Indonesia</li>
  <li><b>Site Area</b> 160 sqm</li>
  <li><b>Building Area</b> 210 sqm</li>
  <li><b>Design Phase</b> 2016</li>
  <li><b>Construction Period</b> April 2016 -  July 2017</li>
</ul>