table 宽100% td如何宽度随文字自适应?

PainAndLove
  • 358
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
            content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>table</title>
    <link rel="stylesheet" href="../icon/iconfont.css">
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        header {
            height:40px;
            background: red;
            box-sizing: border-box;
            font-size: 0;
            padding: 0 6px;
            display: table;
            width: 100%;
        }
        .tr{
            display: table-row;
        }
        .tr>div{
            text-align: center;
            display: table-cell;
            vertical-align: middle;
        }
        .city-name {
            font-size: 14px;
            color: #ffffff;
        }
        .icon-unfold {
            font-size: 10px;
        }
        .search{
            padding: 0 10px 0 0;
            position: relative;
        }
        .search input{
            height: 30px;
            box-sizing: border-box;
            border-radius: 20px;
            width: 100%;
            padding: 0 6px 0 20px;
        }
        .search i {
            position: absolute;
            top: 12px;
            left: 5px;
            font-weight: bold;
        }
        .person{
            color: #ffffff;
        }
    </style>
</head>
<body>
<header>
    <div class="tr">
        <div class="city-name">北京&nbsp;<i class="iconfont icon-unfold"></i></div>
        <div class="search">
            <i class="iconfont icon-search"></i>
            <input type="text" class="search-input" placeholder="请输入关键字">
        </div>
        <div class="person"><i class="iconfont icon-people"></i></div>
    </div>
</header>
</body>
</html>

期望效果如下(已用flex布局实现)

“北京”处宽度自适应 然后右边的icon固定宽度16px,中间的search占用剩余宽度。
图片描述

图片描述

用上述table布局实现的效果如下

问题: "北京"和右边的icon被自动分配了一个宽度,并不是像flex布局那样自适应宽度,求原因及解决方法。

图片描述

回复
阅读 16.6k
2 个回答

table 里的 td 就是尽量均分剩余宽度,不想这样的话用 flex 挺好的

td默认不就是宽度随内容自适应的吗?难道我记错了?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏