css文本宽度自适应

简介: css文本宽度自适应

目录:

一、普通样式效果
二、给title设置display
三、width
四、fit-content
五、理解width:max-content

字数:大约800字

话不多说,直接看效果图,下面图片是我们想要的效果

一、普通样式效果

<divclass="main">
 <!-- 标题 -->
 <divclass="title">
     <imgsrc="./img/冰淇淋.png"alt="">
     <span>冰淇淋</span>
 </div>
 <!-- 内容 -->
 <divclass="content">
   有研究人员却认为冰淇淋起源于中国。
   早在1000多年前,封建王侯为了消暑,
   让人在冬天把冰取来,贮存在地窖里,
   到了夏天再拿出来享用。唐朝末期,
   人们在生产火药时开采出大量硝石,
   并且在一个偶然的机会发现硝石溶于
   凉水的时候会吸收大量的热,甚至
   可以让水结冰。从此人们不用储藏
   冰块就可以在夏天制冰了。此时有
   了专门在夏天卖冰的商人,他们把
   糖加到冰里吸引顾客。到了宋代
   市场上冷冻食品的花样多起来了。
   商人还在里面加上水果或果汁。
   元代的商人甚至在冰中加上果浆
   和牛奶,这种冷冻食品被认为是
   原始的冰淇淋。 [7]
 </div>
</div>

.main{
   width: 500px;
   margin: 100px auto;
}
.title{
   display: flex;
   align-items: center;
   background-color: orange;
}
img{
   width: 40px;
   height: 40px;
}

普通样式下,可以发现,标题部分,占领了第一行,背景颜色也是占满的。如果我们想要让标题自适应,背景颜色只为内容添加背景色,我们应该怎样做呢。

二、给title设置display

很多伙伴第一反应是,给title设置display: inline-block;或display: inline;但是他已经设置flex啦。就不能设置display: inline-block;或display: inline;啦。

解决办法是可以在父元素里面再一个子元素,让子元素把图标和内容包裹起来,在让子元素变为行内元素。但是这样的话没有根本上解决问题,因为父元素依然沾满了整行,而且html元素增多。不可取!

三、width

.main{
 width: 500px;
 margin: 100px auto;
}
.title{
 display: flex;
 align-items: center;
 background-color: orange;
+ width: 100px;
}
img{
 width: 40px;
 height: 40px;
}

也有很多伙伴想到直接,设置width宽度,但是它不能写死,因为写死了,如果内容多了,那就这样了。当然可能有的需求是超出展示三个点,那就另说啦。所以也不可取!

四、fit-content

同理,其它的只要是设置值的,都不满足我们想要标题自适应的需求。来看看fit-content。

.main{
 width: 500px;
 margin: 100px auto;
}
.title{
 display: flex;
 align-items: center;
 background-color: orange;
+ width: fit-content;
}
img{
 width: 40px;
 height: 40px;
}

这个时候发现,我艹,🐮,这个可以自适应,首先,它既是块级元素,它又能自适应内容宽度。很好。我们再研究研究一下它。

介绍:

fit-content 行为类似于 fit-content(stretch),实际上这意味着盒子会使用可用的空间,但永远不会超过 max-content。

这里说永远不会超过 max-content,那这个 max-content 是多大呢,

五、理解width:max-content

max-content的行为表现可以这么理解,假设我们的容器有足够的宽度,足够的空间,此时,所占据的宽度是就是max-content所表示的尺寸。

不懂没关系,我们看一个对比示例,保证立马就知道!

您可以底部超链接访问:CSS3 width:max-content对比测试demo

这是一个display:inline-block和width:max-content的对比demo,如果妹子下面的文字描述短,大家是看不出区别的。但是,如果文字内容像demo所展示的这么长,嘻嘻嘻嘻~~

会发现,width:max-content表现得好像设置了white-space:nowrap一样,文字一马平川下去,元素的宽度也变成了这些文字一行显示的宽度!为什么会这么表现呢?定义就是这样的,对吧,我们对照下,首先,假设我们的容器有足够的空间,你想呀,容器足够空间,那下面的描述文字肯定一行显示了,此时,上面的图片和下面的文字那个内容宽度大,自然是文字啦,所谓max-content就是值采用宽度大的那个内容的宽度。

请注意,fit-content是CSS3的新特性,不一定在所有的浏览器中都得到支持。在某些较旧的浏览器中,可能需要使用浏览器厂商的特定前缀或备用方案来实现相同的效果。另外,fit-content也不适用于所有元素,具体取决于元素的布局和其他样式调整。

CSS3 width:max-content对比测试demo:https://www.zhangxinxu.com/study/201605/width-max-content.html

相关文章
|
1月前
|
前端开发 JavaScript 容器
CSS 实战录: 双栏、四等分、不等间距、自适应...
CSS 实战录: 双栏、四等分、不等间距、自适应...
80 0
|
20天前
|
前端开发 UED 容器
在 CSS 中使用 Flex 布局实现页面自适应时需要注意什么?
【10月更文挑战第22天】在使用 Flex 布局实现页面自适应时,需要对其基本原理和特性有深入的理解,同时结合具体的布局需求和场景,进行细致的调整和优化。通过合理的设置和注意事项的把握,才能实现理想的自适应效果,提升用户体验。还可以根据实际情况进行更深入的探索和实践,以不断提升 Flex 布局的应用能力。
|
20天前
|
前端开发
css页面顶部底部固定,中间自适应几种方法
【10月更文挑战第22天】css页面顶部底部固定,中间自适应几种方法
|
2月前
|
前端开发
前端基础(五)_CSS文本文字属性、背景颜色属性
本文详细介绍了CSS中关于文本和背景颜色的样式属性。包括字体大小、字体族、字体加粗、字体样式、文本行高、`font`属性、文本颜色、文本对齐方式、文本装饰线、首行缩进等文本属性,以及背景颜色、背景图片、背景重复、背景位置等背景属性。文章通过示例代码展示了这些属性的具体应用和效果。
33 3
前端基础(五)_CSS文本文字属性、背景颜色属性
移动端的打开方式,打开F12之后,就可以看到手机样式设计,移动端的初始化使用normalize.css代码库录到,box-sizing: border-box; 定宽度为多少就是多少,代码库,移动端
移动端的打开方式,打开F12之后,就可以看到手机样式设计,移动端的初始化使用normalize.css代码库录到,box-sizing: border-box; 定宽度为多少就是多少,代码库,移动端
|
2月前
|
前端开发
【前端web入门第三天】02 CSS字体和文本
本文详细介绍了CSS中字体和文本的相关属性。字体部分涵盖字体大小、粗细、样式、行高、字体族及`font`复合属性,通过具体示例展示了如何设置和使用这些属性。文本部分则讲解了文本缩进、对齐方式、修饰线及文字颜色等属性,并提供了实用的代码示例。此外,还简要介绍了调试工具中的一些细节,如错误属性标识和属性生效状态的控制。
66 28
|
3月前
|
前端开发
使用CSS样式化占位文本
使用CSS样式化占位文本
20 0
|
3月前
|
前端开发 容器
CSS实现多行文本的展开收起
CSS实现多行文本的展开收起
41 0
|
4月前
|
前端开发 容器
CSS【详解】对齐 (含文本垂直对齐,文本水平对齐、单行文本垂直居中、多行文本垂直居中、6 种方案块级元素水平垂直居中 、7 种方案图片水平垂直居中、文本自适应对齐、图标和文本对齐,图片和文本对齐等)
CSS【详解】对齐 (含文本垂直对齐,文本水平对齐、单行文本垂直居中、多行文本垂直居中、6 种方案块级元素水平垂直居中 、7 种方案图片水平垂直居中、文本自适应对齐、图标和文本对齐,图片和文本对齐等)
69 0