CSS多元素不换行

本文介绍了如何使用CSS和HTML实现多元素在有限宽度内不换行展示,通过`UL`和`LI`标签的组合,配合横向滚动条,以确保在保持布局紧凑的同时显示所有数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文地址: https://www.jeremyjone.com/533/ , 转载请注明。


有时候我们需要展示很多条数据,还要保证每条数据占据一行。但是页面上的宽度有限,为了展示更多的信息,同时还要保证不换行,一不定非要用div来回嵌套,可以使用ulli的组合轻松完成。

效果图

file
这样的长文本可以使用横向的滚动条显示全。

代码:
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <title>CSS多元素不换行</title>
    <style>
        .test {
            display: block;
            white-space: nowrap;
            width: 1500px;
            overflow: auto;
            background: #666;
            padding: 5px 0;
        }

        ul {
            list-style: none;
            width: 100%;
            padding-left: 0;
            text-align: left;  // 这样保证每一个ul行都是居左展示,默认为居中
        }

        li {
            list-style: none;
            display: inline-block;
        }

        .test-img {
            width: 50px;
            height: 50px;
        }

        .pd {
            padding-left: 100px;
        }

    </style>
</head>

<body>
    <div class="test">
        <ul>
            <li>开始位置</li>
            <li>
                <!-- 图片随意换 -->
                <img class="test-img" src="./pic.png" alt />
            </li>
            <li>
                aaaaaaaaaaaaaaaaaaaa 测试文本 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
            </li>
            <!-- li 理论上可以有任意个,每一行都是用ul来控制即可 -->
        </ul>

        <ul>
            <li>开始位置</li>
            <li>
                <img class="test-img" src="./pic.png" alt />
            </li>
            <li>
                aaaaaaaaaaaaaaaaaaaa 测试文本 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
            </li>
        </ul>

        <!-- 可以给不同ul添加不同的样式,比如这里添加的缩进样式 -->
        <ul class="pd">
            <li>开始位置</li>
            <li>
                <img class="test-img" src="./pic.png" alt />
            </li>
            <li>
                aaaaaaaaaaaaaaaaaaaa 测试文本 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
            </li>
        </ul>

        <ul>
            <li>开始位置</li>
            <li>
                <img class="test-img" src="./pic.png" alt />
            </li>
            <li>
                aaaaaaaaaaaaaaaaaaaa 测试文本 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
            </li>
        </ul>
    </div>
</body>

</html>

其实有时候,html的一些元素还是有比较好的效果,不一定大量使用div。 – 今天看同事写的代码有感而发。。。

CSS 中,可以通过以下属性设置 `<span>` 元素不换: ### 核心方法: ```css span { white-space: nowrap; /* 禁止换 */ } ``` ### 完整示例: ```html <style> .no-wrap { white-space: nowrap; /* 可选:防止内容溢出父容器 */ overflow: hidden; text-overflow: ellipsis; /* 超出部分显示省略号 */ } </style> <div style="width: 100px; border: 1px solid #ccc;"> <span class="no-wrap">这是一段很长的文本,但不会换,可能会溢出容器</span> </div> ``` ### 关键属性说明: 1. **`white-space: nowrap`** - 强制文本在一显示,禁止自动换。 2. **`overflow: hidden` + `text-overflow: ellipsis`**(可选) - 当文本超出容器宽度,隐藏溢出部分并显示省略号。 ### 其他相关属性: - **`display: inline-block`** 如果 `<span>` 需要设置宽度/高度但仍保持内特性,可以改用: ```css span { display: inline-block; white-space: nowrap; } ``` - **`word-break: keep-all`**(针对中文) 防止 CJK(中文/日文/韩文)文本被强制换: ```css span { white-space: nowrap; word-break: keep-all; } ``` ### 常见问题: 1. **为什么 `white-space: nowrap` 无效?** - 检查父容器是否设置了 `width` 或 `max-width`,且内容是否确实超出容器宽度。 - 确认没有其他 CSS 覆盖了该属性(如 `flex` 或 `grid` 布局可能影响为)。 2. **如何让多个 `<span>` 连续不换?** - 对父容器设置 `white-space: nowrap`: ```css .parent { white-space: nowrap; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值