网页制作 
首页 > 网页制作 > 浏览文章

CSS 水平居中并限定最大的宽度实现

(编辑:jimmy 日期: 2024/12/28 浏览:3 次 )

一个 CSS 布局和样式的问题,如何在水平居中和限制最大宽度中,进行平衡

在最近工作中,遇到一个这样的问题:

1. 背景

  • 水平三栏或者两栏的布局,其中一栏内的内容是变动的;
  • 当内容过少时,整体需要居中展示;
  • 当内容过多时,需要根据最大的宽度进行省略;

2. 实现的思路

整体的容器要添加属性:

.container {
    display: flex;
    justify-content: center;
}

2.1 使用 flex:1 来实现

之前的代码里,把变动的那一栏设置为 flex: 1 或者 flex: auto ,但这样存在的问题是,这块会把容器剩余的所有空间都占满,而不会根据内容自动调整;

2.2 设置 flex: none 来实现

这个存在的问题是,当内容过多时,不会盖住过多的内容

2.3 不设置属性

中间内容不固定的,则不设置任何 flex 属性,如果已经设置了不够,记得重新覆盖掉:

.clamp {
    flex: initial;
}

注意,这里使用的是 initial ,而不是 none。

同时还要注意,其他栏的宽度不要被挤压。我们左侧这一栏本来是放着一个图片,有设置宽度,但还是因为中间这一栏的内容过多,导致图片被压缩变形。所以,图片这里添加了一个 min-width 的属性。

上一篇:Css3实现无缝滚动防抖
下一篇:CSS3 border-radius圆角的实现方法及用法详解
一句话新闻
微软与英特尔等合作伙伴联合定义“AI PC”:键盘需配有Copilot物理按键
几个月来,英特尔、微软、AMD和其它厂商都在共同推动“AI PC”的想法,朝着更多的AI功能迈进。在近日,英特尔在台北举行的开发者活动中,也宣布了关于AI PC加速计划、新的PC开发者计划和独立硬件供应商计划。
在此次发布会上,英特尔还发布了全新的全新的酷睿Ultra Meteor Lake NUC开发套件,以及联合微软等合作伙伴联合定义“AI PC”的定义标准。