Wordpress 테마 (http://www.dev.visualvisual.com)를 개발 중입니다. .menu-items이 상단에 표시되고 두 번째 바닥 글 메뉴는 .menu-items이 전체에 걸쳐 펼쳐질 헤더 메뉴가 있습니다.해당 컨테이너에있는 부모와 유사한 요소의 수에 따라 자식 요소에 다른 ID를 지정하는 방법
이러한 .menu-items 요소를 각각 다르게 배치했습니다.
의 첫 번째 메뉴 항목. 헤더은 왼쪽 상단에 있습니다. 두 번째 .menu-item이있는 경우 오른쪽 상단에 정렬됩니다. 세 번째 메뉴 항목이 있으면 두 번째 메뉴 항목이 가운데에 표시됩니다. 등등. 메뉴 항목이 많을수록 페이지의 전체 너비에 따라 "압축"됩니다. 이것은 .headermenu와 .footermenu 모두에서 작동합니다. 지금까지
.headermenu {
position: fixed;
top:0vh;
left:0vw;
width: 95vw;
padding-right: 5vw;
}
.headermenu ul {
justify-content: space-between;
display: flex;
}
.footermenu {
bottom:0vh;
left:0vw;
position: fixed;
width: 95vw;
padding-right: 5vw;
}
.footermenu ul {
justify-content: space-between;
display: flex;
}
너무 좋은 : 은 내가 .menu-항목 위치를 이러한 CSS 규칙을 사용했다. 내 문제는 내가 페이지에서 부모 위치에 따라 자녀 요소의 스타일을 지정하려는 것입니다. 미래의 사용자가 추가 할 메뉴 항목의 수 (1, 2, 3, 4 또는 그 이상의 "메뉴 항목")를 모르기 때문에 CSS로 이것을 수행하는 것은 불가능하다고 생각합니다.
나는 나의 .SUB 메뉴 항목을 표시하는 규칙이 스케치 세트를 썼다 :
.menu-item > ul.sub-menu {
padding: 1vh;
text-align: center;
flex-direction: column;
visibility: hidden;
opacity: 0;
transition: 0.5s ease-out;
}
.menu-item:hover > ul.sub-menu {
visibility: visible;
opacity: 1;
}
규칙 세트를 중심으로 .SUB 메뉴 항목을 정렬되지만, 텍스트 경우 예상보다 길다면, 부모는 자연스럽게 넓어 져서 "가장 큰 아이"를위한 공간을 허용 할 것입니다. 그래서 지금은 최고의 옵션에 믿고 :
- 항상의 첫 번째 .menu 항목에서 아이들을 맞 춥니 다 왼쪽 상단 왼쪽에;
- , 3 .menu-항목이 경우 권리
- 에 오른쪽 상단에있는 마지막 .menu 항목에서 아이들을 정렬 오른쪽으로 마지막 .menu 항목에서 아이들을 정렬하고 두 번째 메뉴 항목의 하위 항목은 입니다.
- 4 개의 메뉴 항목이있는 경우 마지막으로 .menu-item의 하위 항목과 가운데에있는 .menu-item의 하위 항목을 가운데에 정렬하십시오. 이 제는 #header 구조입니다
<div id="footer">
<h1>
<div class="footermenu">
<ul id="menu-footer-menu" class="menu">
<li class="menu-item"><a href="url_4">Contact</a></li>
<li class="menu-item"><a href="url_5">Links</a></li>
<li class="menu-item"><a href="url_6">About</a>
<ul class="sub-menu">
<li class="menu-item"><a href="url_6_a">More Landscapes</a></li>
<li class="menu-item"><a href="url_6_b">Collection</a></li>
<li class="menu-item"><a href="url_6_c">Brave New</a></li>
<li class="menu-item"><a href="url_6_d">Line Three</a></li>
<li class="menu-item"><a href="url_6_e">Mary's World</a></li>
</ul>
</li>
</ul>
</div>
</h1>
</div><!-- end of #footer -->
I :
<div id="header">
<h1>
<div class="headermenu">
<ul class="menu">
<li class="menu-item"><a href="url_1">News</a></li>
<li class="menu-item"><a href="url_2">Portfolio</a>
<ul class="sub-menu">
<li class="menu-item"><a href="url_2_a">Alternative Landscapes</a></li>
<li class="menu-item"><a href="url_2_b">Collection</a></li>
<li class="menu-item"><a href="url_2_c">Brave</a></li>
<li class="menu-item"><a href="url_2_d">Abstract Posters</a></li>
<li class="menu-item"><a href="url_2_e">Pedro, O Mau</a></li>
</ul>
</li>
</ul>
</div>
</h1>
</div> <!-- end of header -->
이 내 글의 구조 솔루션은 자바 스크립트 루프와 다소 관련이 있어야한다고 생각합니다.이 루프는 메뉴에 몇 개의 아이템이 있고 다른 경우에 속성 ID가 있는지 확인합니다. 내 자바 스크립트는 루디 멘털하지만 나는 논리 뭔가처럼되고있다 감지 해요 :
(this is not any type of code)
a) count menu-items
b) if 1 menu-item > id#left
c) if 2 menu-items > id#left to menu 1 > id#right to menu 2
d) if 3 menu-items > id#left to menu 1 > id#center to menu 2 > id#right to menu 3
e) if 4 menu-items > id#left to menu 1 > id#center to menu 2 and 3 > id#right to menu 4
f) if 5 menu-items > id#left to menu 1 > id#center to menu 2, 3 & 4 > id#right to menu 5...
당신이 내가 적어도 자바 스크립트에서이 같이 분석 시작할 수있는 방법을 알아?
감사합니다.
. 그러나 부모는 모두 자녀의 최대 너비와 관련하여 중심에 정렬됩니다. 이 CSS 전략을 사용하고 부모가 자녀와 같은면에 맞도록 강제 할 수있는 방법이 있습니까? 많은 감사합니다. –
그래. codepen 링크 완료. 다시 확인하십시오. 동일한 정렬이 상위 항목에 추가되도록 코드의 모든 의사 요소 CSS에 .menu> .menu-item을 추가하십시오. 추신 도움이 되었다면 답을 표시하십시오. 감사합니다 –