如何分隔<ul>的内容?

时间:2019-01-20 18:05:25

标签: javascript html css twitter-bootstrap

我想将内容均匀地隔开,然后让所有空间都相等,但是我不确定该怎么做。当我在列表中添加填充或增加列中的空间时,就会弄乱页面的格式

我也尝试将偏移量放在行中,但仍然无法解决问题 所以我正在尝试使其像:

      Projects          About Me          Contact Me
      Pic               Pic               Pic

但是任何时候我将其更改为:

      Projects Pic         About Me          Contact Me
                           Pic               Pic

.header {
  font-family: Cambria;
  font-size: xx-large;
  text-align: center;
  padding: 50px;
  background-color: lightblue;
  background-image: linear-gradient(to bottom right, darkgray, lightblue);
}

.home {
  width: 100%;
}

.home div {
  width: 200px;
}

.home img {
  vertical-align: middle;
  border-style: none;
  height: 200px;
  width: 200px;
  object-fit: cover;
}

.home ul {
  display: inline-block;
  list-style-type: none;
  overflow: hidden;
}

.home li {
  margin-left: 20px;
  list-style: none;
  float: left;
}

.home a {
  text-decoration: none;
  font-family: Cambria;
  font-weight: lighter;
  color: steelblue;
}

.home a:hover {
  font-weight: bold;
  color: darkblue;
}

.home img:hover {
  box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
}
<body style="background-color:mintcream">
  <div class="header">
    <span style="color:darkblue">const</span>
    <span style="color:white">_name =</span>
    <span style="color:darkblue">"My_Name"</span>
  </div>
  <div class="row">
    <ul class="home" style="padding-top:20px;">
      <li class="col-md-3">
        <a href="#">
          <span style="font-size:35px">Projects</span>
          <span><img src="https://via.placeholder.com/300.png/09f/fff"/
          </span>
        </a>
      </li>
      <li class="col-md-3">
        <a href="#">
          <span style="font-size:35px">About Me</span>
          <div><img src="https://via.placeholder.com/300.png/09f/fff" /></div>
        </a>
      </li>
      <li class="col-md-2">
        <a href="#">
          <span style="font-size:35px">Contact Me</span>
          <div><img src="https://via.placeholder.com/300.png/09f/fff" /></div>
        </a>
      </li>
    </ul>
  </div>
</body>

3 个答案:

答案 0 :(得分:0)

您使用过网格系统吗?这将使一切变得更容易执行,并使您的网页具有更高的响应速度。在此处查看我的一些示例代码:https://github.com/apanesar11/CSS-Grids

答案 1 :(得分:0)

正如@ apanesar11指出的那样,网格应该可以解决您的问题。 另一个解决方案是使用flexbox。 我用@mplungjan给出的片段制作了您和一个示例: https://codepen.io/mdubus/pen/BvXXmJ

.home {
  width: 100%;
  display:flex;
  flex-direction:row;
  justify-content:space-around;
}

如果您对对齐不满意,也可以用justify-content:space-around;替换.home中的justify-content:space-between;。 我不确定您想要哪种对齐方式,但希望能对您有所帮助! :)

编辑: 我还用

更改了.home a

display:flex; flex-direction:column;,以便您的图片位于文字下方。

答案 2 :(得分:0)

当前具有此行为的原因是因为span是一个 inline 元素,而div是一个 block 元素。因此,about.png和phone.jpg图像当前处于定位状态,因为它们被包装在div元素中,因此开始新的图像。您的project.jpg img包装在span元素中,并且span元素不会在新行上开始,它们仅占用所需的空间。