CSS-若窗口太小,滚动条会出现在“表格”单元格上
CSS - Scrollbar appear on Table cell if window is too small
好吧,我一直在努力,但还没有找到解决问题的方法我会尽力解释的。
我有一个在表格中创建的网站(不要问),这个网站有一个非固定的顶部菜单,由一个表行和三个表列组成,一个用于图像徽标,一个用作名称,最后一个用于按钮作为菜单,徽标和名称在左侧。
菜单是这里的问题,它由单个ul
元素和固定宽度的li
元素组成。这里有一个小例子:
<table>
<tr>
<td><img src="logo.png"></td>
</tr>
<tr>
<td><span>COMPANY NAME HERE</span></td>
</tr>
<tr>
<td>
<ul>
<li style="width: 100px">button 1</li>
<li style="width: 100px">button 2</li>
<li style="width: 100px">button 3</li>
<li style="width: 100px">button 4</li>
<li style="width: 100px">button 5</li>
</ul>
</td>
</tr>
</table>
菜单越来越多,现在按钮太多了。,在较小的屏幕上,这会在整个页面上创建一个水平滚动条。
这是我的任务,所以我现在的问题是,如果窗口太小,无法容纳所有按钮,我必须在菜单按钮上创建一个水平滚动条(再次不要问),但只能在按钮中。
作为参考,li
元素同时具有display: table-cell
和display: inline-block
属性,表单元格似乎覆盖了内联块
编辑:
抱歉,忘记添加:按钮水平显示。这是当前li
的CSS
text-align: center;
position: relative;
font-size: 12px;
text-transform: uppercase;
display: inline-block;
background: linear-gradient(-35deg, transparent 40px,rgba(0,0,0,0.15) 41px,rgba(0,0,0,0.15) 86px,transparent 87px);
min-width: 120px;
display: table-cell;
并且CCD_ 7本身具有以下CSS:
list-style: none;
margin: 0;
我为您提供了一个CSS和JS的混合解决方案,它还可以调整窗口大小。
它不漂亮(但你要的也不是!:p)
要使用overflow-x
,您需要设置一个固定的width
。
只需在菜单td中添加一个类,如<td class="menu">
(只是为了更好地定位)。
现在在CSS上,添加以下内容:
td.menu {
overflow-x: auto;
}
使用JS,您现在可以获取BODY元素宽度(或您认为合适的任何其他容器元素),并在脚本加载和窗口调整时使用该值更新.menu
max-width
。
这是完整的JS:
var menuW, bodyW;
var updateSize = function() {
// Get the menu size
menuW = $(".menu").width();
// Get the body size
bodyW = $("body").width();
// Update menu with body size
$(".menu").css("maxWidth", bodyW);
}
// If you need this to happen on window resize
$(window).resize(function() {
updateSize();
});
// Update the size at the script load
updateSize();
请在此处查看工作小提琴:https://jsfiddle.net/fabio_silva/thrbgz4o/
此代码可能有效:
$(document).ready(function(){
if($('table tr td').innerHeight()<120)
$(this).css('overflow-y','scroll');
});
好的,我终于找到了一个解决方案,这是一个非常非常丑陋的解决方案,因为TRUE解决方案是去掉表。但这仍然是一个解决方案。
我在页面底部添加了以下javascript代码:
if(window.innerWidth <= 1880){
document.getElementById('top-menu-buttons').style.width = (window.innerWidth - 390) + 'px';
}else{
document.getElementById('top-menu-buttons').style.width = '';
}
在window.onresize = function()
块中封装了类似的代码以备不时之需,ul
现在具有以下css:
list-style: none;
margin: 0;
overflow-x: auto;
感谢Tom Doodler和所有人的帮助。
- CSS-若窗口太小,滚动条会出现在“表格”单元格上
- 如何将jQuery/AAJAX结果放入表格单元格
- 使用下拉选择菜单高亮显示一行表格单元格
- 使用javascript下拉菜单更改表格单元格的颜色
- 表格单元格高度与背景高度匹配
- 在表格单元格中查找超链接
- 如何使用单击属性和工具提示动态创建表格单元格,该工具提示将超链接到页面
- 在 DIV 中定位表格单元格
- 单击时将表格单元格从范围更改为输入
- 使用 javascript 为 HTML 表格单元格指定颜色
- 将单击表格单元格重定向到其中的
- JQuery insertAfter();移动下一个表格单元格
- 单击并用CTRL+C复制值时高亮显示html表格单元格
- TinyMCE - 允许表格单元格元素作为有效的 html
- 使用jsp更改表格单元格的颜色
- 如何从表格单元格中删除html的某些部分
- 在动态表格单元格跨度中单击时更新一个权重值
- 从所选内容中选择选项,并在表格单元格中显示所选内容的信息
- 在输入字段之前提取表格单元格中的文本
- 使用外部 javascript 更改多个表格单元格中的文本