你不知道的width:auto

ByteWanderer
• 阅读 2700

    说到widh:auto这个属性大家一定不陌生,也都知道width的默认值是auto,正因为auto是默认值,极少有人去关注auto的宽度表现,下面就让我介绍一下我认识的auto的四种宽度表现
1.充分利用可用空间。比方说,<div>、<p>这些元素的宽度默认是100%与父级容器的。这种充分利用可用空间的行为还有个专有名字,叫作fill-available。

2.收缩与包裹。典型代表就是浮动、绝对定位、inline-block元素或者table元素,英文称为shrink-to-fit,收缩到合适CSS3中的fit-content指的就是这种宽度表现

3.收缩到最小。这个最容易出现在table-layout为auto的表格中

你不知道的width:auto

 <table>
    <tr>
      <td>就1列就1列就1列就1列就1列</td>
      <td>当父级relative,且宽度很小的时候,例如{position:relative; width:20px;},absolute元素也会出现一柱擎天的情况;</td>
      <td>当父级relative,且宽度很小的时候,例如{position:relative; width:20px;},absolute元素也会出现一柱擎天的情况;</td>
    </tr>
  </table>
table {
  width: 280px;
  margin: 0 auto;
  text-align: left;
  background: #a0b3d6;
  font-size: 12px;
}
td {
  padding: 2px 4px;
  border: 3px solid #fff;
  background: #f9f9f9;
}

当每一列空间都不够的时候,文字能断就断,但中文是随便断的,数字和英文单词不能断。于是第一列的每个字都被断掉,称为min-content。

4.超出容器限制。除非明确的width相关设置,否则上面的三种情况尺寸都不会主动超过父级容器宽度,但是存在一些特殊情况。例如,内容很长的连续的英文和数字,或者内联元素被设置了white-space:nowrap:
你不知道的width:auto

<div class="father">
    <span class="child">恰如一江春水向东流,流到断崖也不回头</span>
</div>
  .father {
    width: 150px;
    padding: 10px;
    background-color: #cd0000;
    white-space: nowrap;
  }
  .child {
    display: inline-block;
    padding: 5px;
    background-color: #f0f3f9;
  }

自元素既保持了inline-block元素的收缩特性,又同时让内容的宽度最大,直接无视父级容器的宽度限制,称为max-content

点赞
收藏
评论区
推荐文章
达里尔 达里尔
3年前
用css的方式取消div的鼠标点击事件
有时候一些场景需要禁止对div等元素进行点击事件,这个时候如果用js的方法会费时费力,代码量还多,这个时候可以用这个css方法来禁止鼠标点击事件css.divpointerevents:auto|none;/这里的属性为none就是不可被点击/
Wesley13 Wesley13
3年前
CSS块级元素与行内元素
CSS块级元素与行内元素行内元素与块状元素1、块级元素:可以设置width,height属性。行内元素:设置width和height无效,其宽度随其元素的内容(文字或者图片等)的宽度而变化。可以通过lineheight设置行高(行高和height是不同的东西)。2、块级元素:可以设置margin和padd
Stella981 Stella981
3年前
Avue前端控件大全和表格属性
//表格属性//width:“100%”,//表格宽度//calcHeight:“auto”,//表格高度差(主要用于减去其他部分让表格高度自适应)//height:“auto”,//表格高度//maxHeight:“auto”,//表格最大高度//border:true,//是否显示表格边框//e
Wesley13 Wesley13
3年前
2020软件工程作业03
<styletable{width:100%;/\表格宽度\/margin:auto;/\外边距\/emptycells:show;/\单元格无内容依旧绘制边框\/fontsize:18px;}table,th,td{border:2pxsolidpink;}li{fontsize:1
Stella981 Stella981
3年前
Jersey “Auto
本文同步至http://www.waylau.com/jerseyautodiscoverablefeaturesfailedinmaven/(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fwww.waylau.com%2Fjerseyautodiscoverable
Stella981 Stella981
3年前
IE7、IE8、IE9对min
问题:    IE7、IE8、IE9对minheight不识别,其他无问题解决:   box{width:100px;height:35px;}   htmlbodybox{width:auto;height:auto;width:100px;minheight:35px;} 实例:
Stella981 Stella981
3年前
LayaAir使用原生Video视频播放以及Video监听事件
1.原生Video的基本属性src:视频的属性,url地址poster:视频封面,没有播放时显示的图片preload:预加载|none|metadata(部分预加载)|auto。默认为autoautoplay:自动播放loop:循环播放controls:浏览器自带的控制条width:视频宽度height:视频高
Stella981 Stella981
3年前
Spring Kafka中关于Kafka的配置参数
consumer的配置参数(开始)如果'enable.auto.commit'为true,则消费者偏移自动提交给Kafka的频率(以毫秒为单位),默认值为5000。spring.kafka.consumer.autocommitinterval;当Kafka中
Wesley13 Wesley13
3年前
mysql三
阅读目录一介绍二notnull与default三unique四primarykey五auto\_increment六foreignkey七作业一介绍约束条件与数据类型的宽度一样,都是可选参数作用:用于保证数据的完整性和一致性主要分为
Wesley13 Wesley13
3年前
mysql select将多个字段横向合拼到一个字段
表模式:CREATE TABLE tbl_user (  id int(11) NOT NULL AUTO_INCREMENT,  name varchar(255) DEFAULT NULL,  age int(11) DEFAULT NULL,  PRIMARY KEY (id)
为什么mysql不推荐使用雪花ID作为主键
作者:毛辰飞背景在mysql中设计表的时候,mysql官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一),而是推荐连续自增的主键id,官方的推荐是auto_increment,那么为什么不建议采用uuid,使用uuid究