我已经创建了一个Blazor WebAssembly解决方案,并且正在从示例Blazor应用程序构建它.我必须处理一个需要水平溢出的表(它有太多列).不幸的是,这个溢出的表拉伸了table-container个div和整个page个div,并在整个页面上添加了一个水平滚动条.

example of the problem

我想要的是只向包含表的div(在下面的例子中是table-container)添加一个水平滚动条,大概是overflow-x: auto;.水平滚动条不应出现在整个页面上.此外,我不希望桌子拉伸其容器或任何其他元素.

我看到的一个解决方案是将page元素设置为display-block,而不是display-flex,因为flex行为似乎会导致这个问题.然后,我需要重新安排所有其他元素-所以我想避免这种情况,如果可能的话.使用vw设置table-container的宽度也解决了这个问题,但我不确定它是否在所有屏幕上都有足够的响应.

除了将div的宽度固定为vw,或者将整个应用程序的宽度改为display-block之外,还有其他解决方案吗?

要重新创建此方案,请执行以下操作:

  • 创建Blazor WebAssembly托管应用程序示例
  • 使用以下示例之一创建页面

Simple Paragraphs Sample

我已经添加了2000px的宽度来模拟溢出.

    @page "/test"
    
    <div id="should-contain-scrollbar" class="mt-2" style=" overflow-x: auto; white-space: nowrap;">
        <div style="width: 2000px;">
            <p>
                Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Vitae nunc sed velit dignissim sodales ut eu sem. Imperdiet dui accumsan sit amet nulla. Vestibulum lectus mauris ultrices eros in cursus turpis massa tincidunt. Elit duis tristique sollicitudin nibh sit amet commodo nulla facilisi. Congue quisque egestas diam in arcu cursus. Mattis nunc sed blandit libero volutpat sed cras ornare. Vitae congue mauris rhoncus aenean vel elit scelerisque. Pellentesque diam volutpat commodo sed egestas. Vitae tempus quam pellentesque nec. Egestas sed sed risus pretium.
            </p>
    
            <p>
                Dolor purus non enim praesent elementum facilisis leo vel fringilla. Arcu bibendum at varius vel pharetra vel turpis. Adipiscing elit duis tristique sollicitudin. Diam vulputate ut pharetra sit. Mauris sit amet massa vitae tortor condimentum lacinia quis vel. Nisl pretium fusce id velit ut tortor pretium. Mauris ultrices eros in cursus turpis massa. Donec adipiscing tristique risus nec. Lorem sed risus ultricies tristique. Arcu bibendum at varius vel pharetra vel. Ac ut consequat semper viverra. A arcu cursus vitae congue mauris rhoncus. Malesuada proin libero nunc consequat interdum varius sit amet. Vitae suscipit tellus mauris a. Nunc vel risus commodo viverra maecenas accumsan lacus vel. Netus et malesuada fames ac turpis.
            </p>
    
            <p>
                Auctor neque vitae tempus quam pellentesque nec nam. Leo in vitae turpis massa sed elementum tempus. Sapien faucibus et molestie ac. Cursus eget nunc scelerisque viverra mauris. Elit eget gravida cum sociis natoque penatibus. Et tortor consequat id porta nibh venenatis. Amet commodo nulla facilisi nullam. Sapien faucibus et molestie ac feugiat. Vitae tempus quam pellentesque nec nam aliquam. Id volutpat lacus laoreet non curabitur gravida arcu ac. Mi bibendum neque egestas congue quisque egestas diam in arcu. Tellus id interdum velit laoreet id donec ultrices. Id eu nisl nunc mi ipsum faucibus vitae. Ullamcorper morbi tincidunt ornare massa eget egestas purus. Varius morbi enim nunc faucibus a pellentesque sit amet porttitor. Non pulvinar neque laoreet suspendisse interdum. Quam id leo in vitae turpis. Parturient montes nascetur ridiculus mus mauris vitae ultricies. Venenatis lectus magna fringilla urna.
            </p>
    
            <p>
                Risus viverra adipiscing at in tellus integer feugiat. Massa enim nec dui nunc mattis enim. Commodo ullamcorper a lacus vestibulum sed arcu non. Fermentum leo vel orci porta non pulvinar. Habitant morbi tristique senectus et netus et malesuada fames. Quam id leo in vitae turpis massa sed elementum tempus. Nullam eget felis eget nunc. Varius sit amet mattis vulputate enim nulla aliquet porttitor. Odio facilisis mauris sit amet massa. Morbi tempus iaculis urna id volutpat. Phasellus egestas tellus rutrum tellus pellentesque. Quisque egestas diam in arcu cursus euismod. Semper feugiat nibh sed pulvinar proin gravida hendrerit. Condimentum lacinia quis vel eros donec ac odio tempor. Donec pretium vulputate sapien nec. Donec ultrices tincidunt arcu non sodales.
            </p>
    
            <p>
                Ornare arcu dui vivamus arcu felis bibendum. Justo laoreet sit amet cursus. Posuere lorem ipsum dolor sit amet consectetur adipiscing elit duis. Urna et pharetra pharetra massa massa ultricies mi quis. Pellentesque adipiscing commodo elit at imperdiet dui. Sit amet mattis vulputate enim nulla aliquet porttitor lacus luctus. Sollicitudin nibh sit amet commodo nulla. Arcu bibendum at varius vel pharetra. Porttitor lacus luctus accumsan tortor posuere ac ut consequat. Turpis egestas maecenas pharetra convallis. Eget velit aliquet sagittis id consectetur purus ut. Posuere lorem ipsum dolor sit amet consectetur adipiscing. Ullamcorper dignissim cras tincidunt lobortis feugiat vivamus at augue eget. Curabitur gravida arcu ac tortor dignissim. Egestas congue quisque egestas diam. Auctor eu augue ut lectus arcu bibendum. Donec ultrices tincidunt arcu non sodales neque. Tincidunt arcu non sodales neque sodales ut etiam sit amet. Non quam lacus suspendisse faucibus interdum. Condimentum vitae sapien pellentesque habitant morbi tristique senectus.
            </p>
        </div>
    </div>

Simple Table Sample

    @page "/test-table"
    
     <div id="table-container" class="mt-2" style="white-space: nowrap;">
        <table class="table">
            <thead>
                <tr>
                    <td>One</td>
                    <td>Two</td>
                    <td>Three</td>
                    <td>Four</td>
                    <td>Five</td>
                    <td>Six</td>
                    <td>Seven</td>
                    <td>Eight</td>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td>
                        Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Vitae nunc sed velit dignissim sodales ut eu sem. Imperdiet dui accumsan sit amet nulla. Vestibulum lectus mauris ultrices eros in cursus turpis massa tincidunt. Elit duis tristique sollicitudin nibh sit amet commodo nulla facilisi. Congue quisque egestas diam in arcu cursus. Mattis nunc sed blandit libero volutpat sed cras ornare. Vitae congue mauris rhoncus aenean vel elit scelerisque. Pellentesque diam volutpat commodo sed egestas. Vitae tempus quam pellentesque nec. Egestas sed sed risus pretium.
                    </td>
                    <td>Two</td>
                    <td>Three</td>
                    <td>Four</td>
                    <td>
                        03cc6a8e-951b-11ee-b9d1-0242ac120002
                    </td>
                    <td>
                        083e7c1a-951b-11ee-b9d1-0242ac120002
                    </td>
                    <td>
                        499b9247-69de-4bd6-8650-d18b31e3d33f
                    </td>
                    <td>
                        098e82e3-0bbf-4f00-804e-caf401d06e14
                    </td>
                </tr>
                <tr>
                    <td>
                        Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Vitae nunc sed velit dignissim sodales ut eu sem. Imperdiet dui accumsan sit amet nulla. Vestibulum lectus mauris ultrices eros in cursus turpis massa tincidunt. Elit duis tristique sollicitudin nibh sit amet commodo nulla facilisi. Congue quisque egestas diam in arcu cursus. Mattis nunc sed blandit libero volutpat sed cras ornare. Vitae congue mauris rhoncus aenean vel elit scelerisque. Pellentesque diam volutpat commodo sed egestas. Vitae tempus quam pellentesque nec. Egestas sed sed risus pretium.
                    </td>
                    <td>Two</td>
                    <td>Three</td>
                    <td>Four</td>
                    <td>
                        03cc6a8e-951b-11ee-b9d1-0242ac120002
                    </td>
                    <td>
                        083e7c1a-951b-11ee-b9d1-0242ac120002
                    </td>
                    <td>
                        499b9247-69de-4bd6-8650-d18b31e3d33f
                    </td>
                    <td>
                        098e82e3-0bbf-4f00-804e-caf401d06e14
                    </td>
                </tr>
            </tbody>
        </table>
    </div>

推荐答案

width: 0; min-width: 100%;加到#should-contain-scrollbar#table-container的div上.

Css相关问答推荐

如何在CSS calc()中使用反向百分比/无单位计算?

我控制的自定义单选按钮无法重新 Select

CSS媒体查询不显示所需的输出

如果`line-Height:1`,则垂直字母所占的高度

使用间距时奇怪的MUI网格行为

CSS Grid我不想要的东西

如何按列垂直对齐项目,但不在列内水平对齐

CSS 字符串变量的正确null值是多少?

如何禁用亚像素渲染或强制浏览器将属性舍入到最近的像素?

为什么标题中的特定 div 与 Odoo 13 中 PDF 中的页面重叠?

适合剩余高度

Bootstrap 4 img-circle 类似乎不存在

我应该使用 CSS :disabled 伪类还是 [disabled] 属性 Select 器,还是见仁见智?

如何使多个 div 显示在一行中但仍保留宽度?

输入/按钮元素不会在 flex 容器中缩小

Chrome 呈现 colored颜色 的方式与 Safari 和 Firefox 不同

使用 CSS 垂直居中旋转文本

单选按钮和标签显示在同一行

为什么容器 div 坚持比 IMG 或 SVG 内容略大?

:before 和 ::before 有什么区别?