gpt4 book ai didi

javascript - CSS 和 Jquery 用一个 DIV 创建 3 列

转载 作者:太空宇宙 更新时间:2023-11-04 16:19:19 24 4
gpt4 key购买 nike

我的问题是关于 CSS 和 Jquery,它将创建从左到右、从上到下的三列。现在所有数据都放在一列中。

这里是 jquery:

function smartColumns() { 
$("ul.column").css({ 'width' : "100%"});
var colWrap = $("ul.column").width();
var colNum = Math.floor(colWrap / 200);
var colFixed = Math.floor(colWrap / colNum);
$("ul.column").css({ 'width' : colWrap});
$("ul.column li").css({ 'width' : colFixed});
}
smartColumns();
$(window).resize(function () {
smartColumns();
});

这是创建数据的 javascript 函数,并将数据输出到名为 sidbar 的 div 中,该 div 列在函数下方:

 function createSidebarEntry(marker, name, address, city, state, zipcode, telephone, images, url) {
var div = document.createElement('div');
var html = "<ul class='column'><li><div class='block'><a href='http://" + url + "'>" + name + "</a><br/>" + address + "<br/>" + city + ", " + state + " " + zipcode + "<br/>" + (formatPhone(telephone)) + "</div></li></ul>";
div.innerHTML = html;
div.style.marginBottom = '5px';
return div;
}

<html>
<div id="sidebar"></div>
</html>

这是 DIV 使用的 CSS:

#sidebar
{
width:665px;
font-size:10pt;
font-family:Arial;
color:#656668;
}
ul.column{
width: 100%;
padding: 0;
margin: 10px 0;
list-style: none;
}
ul.column li {
float: left;
width: 200px; /*Set default width*/
padding: 0;
margin: 5px 0;
display: inline;
}
.block {
height: 60px;
font-size: 1em;
margin-right: 10px; /*Creates the 10px gap between each column*/
padding: 0px;
background: #FFFFFF;
}
.block h2 {
font-size: 1.8em;
}
.block img {
/*Flexible image size with border*/
width: 89%; /*Took 1% off of the width to prevent IE6 bug*/
padding: 5%;
background:#fff;
margin: 0 auto;
display: block;
-ms-interpolation-mode: bicubic; /*prevents image pixelation for IE 6/7 */
}
#sidebar a:link
{
color:#192A96;
font-weight:bold;
font-size:10pt;
font-family:Tahoma;
text-decoration: underline;
}
#sidebar a:visited
{
color:#192A96;
font-weight:bold;
font-size:10pt;
font-family:Tahoma;
text-decoration: underline;
}
#sidebar a:hover
{
color:#192A96;
font-weight:bold;
font-size:10pt;
font-family:Tahoma;
text-decoration: underline;
}
#sidebar a:active
{
color:#192A96;
font-weight:bold;
font-size:10pt;
font-family:Tahoma;
text-decoration: underline;
}

这样做的目的是创建 3 列,在 665 像素以内,并让数据从左到右,然后从上到下填充段落。然而目前正在发生的是段落都放在左侧的一列中,数据从上到下填充在一列中谢谢

最佳答案

我认为您的样式是正确的,但是在您的 html 变量中只创建了一个 li,因此您只有一列。

如果您将字段分解为三个 li,据我所知它会起作用。您可以在以下位置查看示例:

http://jsfiddle.net/eZPTj/1/

这就是你想要的吗?

编辑:

我想我现在明白了。这就是你想要的吗? http://jsfiddle.net/eZPTj/7/

我相信我更改的主要内容只是 ul 上的设置 - 在 ul 上设置 float :

ul.column {
width: 100%;
padding: 0;
margin: 10px 0;
list-style: none;
float: left;
}

然后将 jQuery 生成的 CSS 规则设置为 200px 而不是 100%,因为 100% 会占据整个 sidebar div。我将其更改为 $("ul.column").css({ 'width' : "200px"});

我还将 innerHTML 方法更改为 $('div#sidebar').append(html);,因为这至少对我不起作用在我的测试中,我只调用了该函数六次,以便您可以看到显示的列。 append 将 html 添加到上一个条目,而不是覆盖它。不过,您可能会以不同的方式调用该函数。

只是为了我自己的测试,我取出了 formatPhone() 函数,因为我假设它是在您的代码中的其他地方定义的,但是抛出了一个错误,因为我无权访问它:) .如果需要,您可以保留它。

关于javascript - CSS 和 Jquery 用一个 DIV 创建 3 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6902854/

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