是否可以创建响应式布局并正确设置换行,以避免我现在使用的这些难看的换行符?

照片是带有背景图像的SPAN元素,但我会接受任何可以有背景图像的元素.

我唯一想保留的是子类别的UL和LIS.其他所有内容都可以是任何合适的HTML元素.

.MainCategories {
  list-style: none;
  margin: 0;
  padding: 0;
  text-align: left;
}

.MainCategories>li {
  display: inline-block;
  max-width: 837px;
  max-width: 650px;
  vertical-align: top;
  margin: 20px;
  padding: 20px;
  border-radius: 20px;
  border: 1px solid rgba(167, 204, 63, 0.5);
}

.MainCategories>li>div.CatHead {
  white-space: nowrap;
}

.MainCategories>li>div.CatHead>a.PhotoFrame .Photo {
  display: inline-block;
  width: 100px;
  height: 75px;
  margin-right: 20px;
  border-radius: 10px;
  padding: 0;
  overflow: hidden;
  font-size: 0;
  line-height: 0;
  border: 1px solid #ddd;
  vertical-align: middle;
  background-size: 100px 75px;
}

.MainCategories>li>div.CatHead>a.PhotoFrame:hover .Photo {
  opacity: 0.5;
}

.MainCategories>li>div.CatHead>a.ParentCat {
  vertical-align: middle;
  font-size: xx-large;
  color: #888;
  white-space: normal;
}

.MainCategories>li>div.CatHead>a.ParentCat:hover {
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
}

.MainCategories>li>ul {
  list-style: none;
  margin-top: 20px;
}

.MainCategories>li>ul>li {
  display: inline-block;
  padding: 5px 0;
  vertical-align: middle;
}

.MainCategories>li>ul>li:before {
  display: inline-block;
  padding: 0 10px;
  vertical-align: bottom;
  line-height: 60%;
  content: "•";
  font-size: xx-large;
  color: #888;
}

.MainCategories>li>ul>li:first-child:before {
  content: "";
  padding: 0;
  font-size: 0;
  line-height: 0;
}

.MainCategories>li>ul>li>a {
  font-size: large;
  text-underline-offset: 3px;
}
<ul class="MainCategories">

  <li>
    <div class="CatHead">
      <a class="PhotoFrame" href="/en-us/categories/food"><span class="Photo" style="background-image:url(https://thevegcat.com/img/86460ca1-f14b-44ec-a96a-1aa47a3e39e8/small)"></span></a>
      <a class="ParentCat" href="/en-us/categories/food">Food (additional words to break)</a>
    </div>

    <ul>
      <li><a href="/en-us/categories/food/sweets">Sweets</a></li>
      <li><a href="/en-us/categories/food/sauces-spices">Sauces &amp; Spices</a></li>
      <li><a href="/en-us/categories/food/snacks-nibbles">Snacks &amp; Nibbles</a></li>
      <li><a href="/en-us/categories/food/ready-made-meals">Ready-made meals</a></li>
      <li><a href="/en-us/categories/food/spreads">Spreads</a></li>
      <li><a href="/en-us/categories/food/milk-cream-yoghurt">Milk, cream, yoghurt</a></li>
      <li><a href="/en-us/categories/food/semi-prepared-meals-and-mixtures">Semi-prepared meals and mixtures</a></li>
      <li><a href="/en-us/categories/food/bread-and-bakery-products">Bread and bakery products</a></li>
      <li><a href="/en-us/categories/food/cereal-flakes">Cereal Flakes</a></li>
      <li><a href="/en-us/categories/food/beverage">Beverage</a></li>
      <li><a href="/en-us/categories/food/baby-food">Baby Food</a>
      </li>
    </ul>
  </li>
</ul>

这就是我现在拥有的

Current state


这就是我想要的

I want this

And I want this

推荐答案

看起来这是一则俏皮话.

More on flexbox

.MainCategories {
  list-style: none;
  margin: 0;
  padding: 0;
  text-align: left;
  max-width: 300px; /* demo only */
}

.MainCategories>li {
  display: inline-block;
  max-width: 837px;
  max-width: 650px;
  vertical-align: top;
  margin: 20px;
  padding: 20px;
  border-radius: 20px;
  border: 1px solid rgba(167, 204, 63, 0.5);
}

.MainCategories>li>div.CatHead {
  display: flex; /* <---------------------------- HERE */
}

.MainCategories>li>div.CatHead>a.PhotoFrame .Photo {
  display: inline-block;
  width: 100px;
  height: 75px;
  margin-right: 20px;
  border-radius: 10px;
  padding: 0;
  overflow: hidden;
  font-size: 0;
  line-height: 0;
  border: 1px solid #ddd;
  vertical-align: middle;
  background-size: 100px 75px;
}

.MainCategories>li>div.CatHead>a.PhotoFrame:hover .Photo {
  opacity: 0.5;
}

.MainCategories>li>div.CatHead>a.ParentCat {
  vertical-align: middle;
  font-size: xx-large;
  color: #888;
  white-space: normal;
}

.MainCategories>li>div.CatHead>a.ParentCat:hover {
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
}

.MainCategories>li>ul {
  list-style: none;
  margin-top: 20px;
}

.MainCategories>li>ul>li {
  display: inline-block;
  padding: 5px 0;
  vertical-align: middle;
}

.MainCategories>li>ul>li:before {
  display: inline-block;
  padding: 0 10px;
  vertical-align: bottom;
  line-height: 60%;
  content: "•";
  font-size: xx-large;
  color: #888;
}

.MainCategories>li>ul>li:first-child:before {
  content: "";
  padding: 0;
  font-size: 0;
  line-height: 0;
}

.MainCategories>li>ul>li>a {
  font-size: large;
  text-underline-offset: 3px;
}
<ul class="MainCategories">

  <li>
    <div class="CatHead">
      <a class="PhotoFrame" href="/en-us/categories/food"><span class="Photo" style="background-image:url(https://thevegcat.com/img/86460ca1-f14b-44ec-a96a-1aa47a3e39e8/small)"></span></a>
      <a class="ParentCat" href="/en-us/categories/food">Food (additional words to break)</a>
    </div>

    <ul>
      <li><a href="/en-us/categories/food/sweets">Sweets</a></li>
      <li><a href="/en-us/categories/food/sauces-spices">Sauces &amp; Spices</a></li>
      <li><a href="/en-us/categories/food/snacks-nibbles">Snacks &amp; Nibbles</a></li>
      <li><a href="/en-us/categories/food/ready-made-meals">Ready-made meals</a></li>
      <li><a href="/en-us/categories/food/spreads">Spreads</a></li>
      <li><a href="/en-us/categories/food/milk-cream-yoghurt">Milk, cream, yoghurt</a></li>
      <li><a href="/en-us/categories/food/semi-prepared-meals-and-mixtures">Semi-prepared meals and mixtures</a></li>
      <li><a href="/en-us/categories/food/bread-and-bakery-products">Bread and bakery products</a></li>
      <li><a href="/en-us/categories/food/cereal-flakes">Cereal Flakes</a></li>
      <li><a href="/en-us/categories/food/beverage">Beverage</a></li>
      <li><a href="/en-us/categories/food/baby-food">Baby Food</a>
      </li>
    </ul>
  </li>
</ul>

Html相关问答推荐

弹性项在主轴方向溢出

Xpath:提取标签之间的文本,但一旦出现嵌入标签就停止

为什么在CSS中字段是一个有效的 colored颜色 名称?

SVG动画只有在打开S开发工具的浏览器时才开始播放

一切停止工作后,添加不透明度(在tailwind )

SVG';COLOR&39;属性不优先于通用css';COLOR&39;属性

在css中是否可以在遮罩图像中结合线性渐变和径向渐变?

与窗高匹配的响应式正方形网格

如何在css中旋转块时调整内容宽度、高度

rvest: Select 不包含链接的段落(<;p>;)

如何将图像放在其内部按钮下方

太多的 Web 视图实例导致手机过热 Swift

如何从 div 内的属性中提取 href 和文本

如何调整底部有 SVG 的元素的高度,使其在所有宽度上看起来都不错?