传智博客
快捷导航
蚂蚁部落
查看: 13912|回复: 0

CSS如何实现div宽度根据内容自适应

[复制链接]
发表于 2012-11-28 08:04:25 | 显示全部楼层 |阅读模式
本帖最后由 antzone 于 2016-7-5 16:39 编辑

CSS如何实现div宽度根据内容自适应:
在实际应用中,可能有这样的需求,那就是需要div根据内容进行宽度自适应。有很多开发者可能误以为如果不设定div的宽度就可以实现宽度随内容自适应,其实这是错误的,因为在默认状态下,div的宽度值是百分之百,也就是会占满整个父元素宽度。
代码实例如下:
[HTML] 纯文本查看 复制代码运行代码

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>蚂蚁部落</title>
<style type="text/css">
.parent{
  width:400px;
  height:400px;
  border:1px solid red;
}
.children{
  border:1px solid blue;
  height:50px;
}
</style>
</head>
<body>
<div class="parent">
  <div class="children">欢迎来到蚂蚁部落,今天阳光不错!</div>
</div>
</body>
</html>

以上代码可以看出,默认状态下,并不能够实现我们想要的效果。
下面对以上代码进行修改如下:
[HTML] 纯文本查看 复制代码运行代码

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>蚂蚁部落</title>
<style type="text/css">
.parent{
  width:400px;
  height:400px;
  border:1px solid red;
}
.children{
  border:1px solid blue;
  height:50px;
  display:inline-block;
  *display:inline;
  *zoom:1;
}
</style>
</head>
<body>
<div class="parent">
  <div class="children">欢迎来到蚂蚁部落,今天阳光不错!</div>
</div>
</body>
</html>

以上代码实现我们想要的效果,并且各浏览器兼容性良好,主要是添加如下核心代码:
[CSS] 纯文本查看 复制代码
display:inline-block; 
*display:inline;
*zoom:1;

当然内联元素不会存在以上麻烦,因为内联元素并不能够设置宽度,只能够随着内容自适应宽度。

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们|手机版|小黑屋| ( 鲁ICP备10022556号-3 )

GMT+8, 2017-11-19 20:22 , Processed in 0.080137 second(s), 22 queries .

Powered by Discuz! X3.2 Licensed

Copyright © 2012-2017 Design: 蚂蚁部落

快速回复返回顶部 返回列表