스타일 시트를 기반으로 1, 2 또는 3 개의 열이있는 정렬되지 않은 목록이 있습니다. 목록의 제목을 만들고 싶고 화면 크기에도 응답해야하므로 2 개의 열 목록이있는 경우 2 개의 제목이 목록에 정렬되고 3 개의 열이있는 경우 3 개의 제목이 표시되어야합니다. 목록은 항목이 동적이므로 항목이 얼마든지 나열 될 수 있습니다. 예 http://jsfiddle.net/francoist/AtX4K/1/
참고 : 아래 그림의 Log No Dimension (제목)은 제가 추가하려는 것입니다.
결과
CSS
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;
}
}
HTML
<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>
이 기능은 부적절한 프로그래밍 관행으로 가득 차 있고 그다지 효율적이지 않을 수 있으므로이 기능을 사용하지 않는 것이 좋습니다.
첫 페이지로드시에는 잘 작동하지만 창 크기 조정시에는 '약간'바쁘게됩니다. 하지만 오늘은 나 자신에게 도전하고 싶었고 도전했습니다.
이 함수가 기본적으로하는 것은 지정된 HTML 태그 ( labeldetailsmall
이 경우) 의 모든 발생 좌표를 가져 와서 상단에 가장 가까운 요소를 선택하고 이전에 삽입 된 제목 요소를 제거하면서 각 항목에 제목을 추가하는 것입니다.
CSS가 흐릿하고 개선이 필요합니다 (일부 요소가 겹치기 때문에).
다시 한번, 당신의 책임하에 이것을 사용하십시오. 저는 단지 코드를 가지고 놀고 싶었고 결국 이것으로 끝났습니다.
원하는 것을 달성하는 데 사용할 수 있는 한 가지 방법에 대한 아이디어를 얻었 으면합니다 .
[업데이트 됨]
jQuery :
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 );
});
CSS (작업 필요) :
span {
display: inline-block;
position: fixed;
}
나는 이것이 some
누군가에게 유용하기를 바랍니다 !
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다