Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 带标题的html多列无序列表_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 带标题的html多列无序列表

Javascript 带标题的html多列无序列表,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有一个无序列表,基于我的样式表,它将有1、2或3列。 我想为列表创建一个标题,它还应该响应屏幕大小,因此如果我有两列列表,我应该看到两个标题与列表对齐,如果我有3列,则看到3个标题与列表对齐。 项目列表将是动态的,因此可以列出任意数量的项目。 实例 注意:下面图片中的Log No Dimension标题是我要添加的 结果 CSS HTML 试试这个: 尝试使用%而不是像素作为大小 例如:字体大小:300% 注意:%value可以根据需要增加或减少。我不建议您使用此函数,因为它充斥着不正确的

我有一个无序列表,基于我的样式表,它将有1、2或3列。 我想为列表创建一个标题,它还应该响应屏幕大小,因此如果我有两列列表,我应该看到两个标题与列表对齐,如果我有3列,则看到3个标题与列表对齐。 项目列表将是动态的,因此可以列出任意数量的项目。 实例

注意:下面图片中的Log No Dimension标题是我要添加的

结果

CSS

HTML

试试这个:

尝试使用%而不是像素作为大小

例如:字体大小:300%


注意:%value可以根据需要增加或减少。

我不建议您使用此函数,因为它充斥着不正确的编程实践,可能效率不高

它在第一次加载页面时运行良好,但在调整窗口大小时,它会变得“有点”忙碌。 然而,今天我想挑战自己,我接受了挑战

此函数的基本功能是获取指定HTML标记labeldetailsmall(在本例中为小标记)的所有出现点的坐标,选择最靠近顶部的元素,并在删除之前插入的标题元素的同时向每个元素追加标题

CSS是模糊的,需要改进,因为有一些元素重叠

再一次,使用它的风险由你自己承担。。。我只是想玩一下代码,结果就是这样

我只是希望你能想出一种方法来实现你想要的

[更新]

jQuery:


我希望这对某些人有用

您所问的本质上是动态的,IMHO,这在HTML中是不可能的,请将问题标记为jQuery/javascript!:我不确定我是否同意,但将标记为jQuery/javascript确保他们的解决方案不止一个。动态部分只是意味着您可以在1、2或3列中拥有无限项。如果手动添加内容,则这可能是可能的,但这将涉及您决定使用1、2或3列。你会手动添加内容吗?还是动态完成?内容是手动添加的,但存储在绑定到的viewmodel中。因此,我认为手动和动态的主题实际上混淆了主题,因为样式表将决定其1、2、3列?仅供将来参考,而不是使用@media来确定列,我使用的是列宽。代码更少,效果也很好。谢谢你的提示,我会添加它,但这并不能解决添加标题的问题?嗨,Thauwa,我会尝试一下,让你知道它是如何运行的。我确实修改了你的代码,但你在正确的轨道上,但它有一些奇怪的位置。对不起,我没有,漫长的一天。我已经做了一两次更新,看看这个演示,你可以看到我想要完成的东西,但它在移动浏览器上不起作用。演示:嗨,Thauwa,这个看起来可以。看看这个
    body{
     font-family: "Tahoma";
    }

    ul {
    border-bottom: 1.5px solid #ccc;
    border-top: 1.5px solid #ccc;
    columns: 1;
    -webkit-columns: 1;
    -moz-columns: 1;
    margin: 0;
    padding: 0;
    list-style: none;
}

li{
    position: relative;
    border-bottom: 1px dotted #ccc;
    list-style: none;
    list-style-type: none;
    width: 100%;
    padding: 0;
}

ul li a {
    float: right; /* width of icon + whitespace */
    padding: 5px;
    font-size: 14px;
}

labeltotal{
    float: right;
    font-size: 24px;
}

labeldetail{
    font-size: 24px;
}
labeldetailsmall{
    font-size: 14px;
}
@media  (min-width:  480px) {
    ul {
    border-bottom: 1.5px solid #ccc;
    border-top: 1.5px solid #ccc;
    columns: 1;
    -webkit-columns: 1;
    -moz-columns: 1;
    margin: 0;
    padding: 0;
    list-style: none;
    }
}
@media (min-width:  568px) {
    ul {
    border-bottom: 1.5px solid #ccc;
    border-top: 1.5px solid #ccc;
    columns: 2;
    -webkit-columns: 2;
    -moz-columns: 2;
    margin: 0;
    padding: 0;
    list-style: none;
    }
}
@media  (min-width:  768px) {
    ul {
    border-bottom: 1.5px solid #ccc;
    border-top: 1.5px solid #ccc;
    columns: 3;
    -webkit-columns: 3;
    -moz-columns: 3;
    margin: 0;
    padding: 0;
    list-style: none;
    }
}
<ul>
<li>
<labeldetailsmall>LOG000001 </labeldetailsmall><labeldetail>2,1 x2,3</labeldetail>        
<a href="#" onclick="alert('Hello World')">edit</a>
<a href="#" onclick="alert('Hello World')">delete</a>
</li>
<li>
<labeldetailsmall>LOG000002 </labeldetailsmall><labeldetail>2,1 x 2,3</labeldetail>
<a href="#" onclick="alert('Hello World')">edit</a>
<a href="#" onclick="alert('Hello World')">delete</a>
</li>
<li>
</ul>
function addThoseHeadings(elementTagInput, yourHEADING){ 

    var elementTag = $( elementTagInput );

    var allElementsObject = {positions : {}};

    $(elementTag).each(function( index ) {
        var theOffset = $(this).offset();
        allElementsObject.positions[index] = {
            left: theOffset.left,
            top: theOffset.top
        };
    });

    var arr = Object.keys( allElementsObject ).map(function ( key, subkey ) { return allElementsObject[key][subkey]['top']; });
    var minimumOffset = Math.min.apply( null, arr );

    $.each(allElementsObject.positions, function( indexUnwanted, valueOffsets ) {
        if( valueOffsets.top == minimumOffset ){
            var elementToAppendTo = document.elementFromPoint( valueOffsets.left, valueOffsets.top );
            $( elementToAppendTo ).before( '<span class="replaceThese" style="left:'+(valueOffsets.left)+'px;top:'+(valueOffsets.top-35)+'px;">'+yourHEADING+'</span>' );
        }
    });

}

var yourHEADING = "Log No";

addThoseHeadings( "labeldetailsmall", yourHEADING );

$(window).resize(function() {
    $( ".replaceThese" ).remove();
    addThoseHeadings( "labeldetailsmall", yourHEADING );
});
span {
    display: inline-block;
    position: fixed;
}