gpt4 book ai didi

javascript - 如何防止尾随内容与我的选项卡内容重叠?

转载 作者:行者123 更新时间:2023-11-28 14:51:50 26 4
gpt4 key购买 nike

我开发了一个仅使用 CSS 来解决 Tab 设计模式的网页。就其目标而言,没有问题,并且有效;但它有几个我想修复的错误,但似乎找不到解决方法。

如果该解决方案与 IE 7、8 或 9 兼容就更好了(因为我当前的模式仅适用于 Edge、Chrome 和 Firefox)。

当我在包含的 DIV 下方有元素,并且里面的内容与它重叠时,就会出现问题。似乎 DIV 容器不会随着选项卡的更改而“调整大小”。

这是页面的示例:

<html>
<head>
<style>
.tabs{display:block;list-style:none;position:relative;padding:0;border-bottom:4px solid #475b7e;}
.tabs li{margin:0;display:inline-block;font-weight:bold;cursor:auto;border:none;max-width:100px;vertical-align:top;}
.tabs li .tab{display:none;}
.tabs li i{font-weight:normal;}
.tabs li [for^=tab]{background-color:#bcc7d8;color:#314362;display:block;position:relative;padding:0 4px 0 4px;margin:0;line-height:18px;}
.tabs li [for^=tab]:hover{background-color:#ffffff;color:#475b7e;}
.tabs li .tab:checked + [for^=tab]{background-color:#314362;color:#ffffff;}
.tabs li .tab:checked + [for^=tab]:hover{background-color:#475b7e;color:#ffffff;}
.tabs li .tab:checked ~ [class=tabcontainer]{display:block;position:absolute;left:0;width:100%;}
.tabs li .tabcontainer{display:none;padding:6px 4px 20px 4px;font-weight:normal;}
</style>
</head>
<body>
<p>Below is a DIV that i would like to grow with the UL list; and also be able to see the text on the next P mark (below the DIV); and more, i would like to be able to use this on IE 7 as well, at least IE 9.</p>
<div class="container">
<ul class="tabs">
<li>
<input type="radio" class="tab" name="tab" id="tab_first" checked="checked" /><label for="tab_first">First</label>
<div class="tabcontainer">Content of First, single line</div>
</li>
<li>
<input type="radio" class="tab" name="tab" id="tab_second" /><label for="tab_second">Second</label>
<div class="tabcontainer">Content of Second<br />2 Lines now</div>
</li>
<li>
<input type="radio" class="tab" name="tab" id="tab_third" /><label for="tab_third">Third</label>
<div class="tabcontainer">Content of Third<br /><br />3 lines, second is empty</div>
</li>
<li>
<input type="radio" class="tab" name="tab" id="tab_forth" /><label for="tab_forth">Forth</label>
<div class="tabcontainer">Content of Forth, (just because) 1 line again</div>
</li>
<li>
<input type="radio" class="tab" name="tab" id="tab_fifth" /><label for="tab_fifth">Fifth</label>
<div class="tabcontainer">Content of Fifth<br />Another line, but even more<br /></br /><br />Now done</div>
</li>
</ul>
</div>
<p>Text i would like to see</p>
</body>
</html>

另一件事是,可以在其上使用 javascript(因为我已经在网站上使用 jQuery-UI)但我无法更改“UL”结构以使用 jQuery-UI 选项卡模型。

请帮忙!

最佳答案

绝对定位带来了挑战,这就是为什么纯 CSS 选项卡和 jQuery 选项卡具有不同的标记结构。在应用 jQuery 的选项卡组件之前,您可以编写 jQuery 来修改标记:

// create a contents element below the list
$('.container').append('<div class="tabs-content"></div>');

// loop through each list item
$('ul.tabs li').each(function() {

// move contents to div below list and give each an index-based ID
$(this).find('.tabcontainer')
.appendTo('.tabs-content')
.attr('id', 'tab' + $(this).index());

// strip markup from list items and build anchors targeting the appropriate ID
$(this).html('<a href="#tab' + $(this).index() + '">' + $(this).text() + '</a>' );

});

// initialize jQuery-UI tabs
$('.container').tabs();

Fiddle demo

关于javascript - 如何防止尾随内容与我的选项卡内容重叠?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51525890/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com