简体   繁体   English

如何在水平div内添加垂直div

[英]How to add vertical divs inside horizontal divs

HTML: HTML:

<div align="center" id="menu_bar">
    <div class="menu_item"><a href="index">Home</a></div>
    <div class="menu_item art">
         <a href="art">Art</a>
         <a class="photography" href="photography">Photography</a>
         <a class="drawing" href="drawing">Drawing</a>
         <a class="painting" href="painting">Painting</a>
    </div>
    <div class="menu_item"><a href="film">Film</a></div>
    <div class="menu_item"><a href="blog">Blog</a></div>
    <div class="menu_item"><a href="about">About</a></div>
    <div class="menu_item"><a href="contact">Contact</a></div>
</div>

jQuery/CSS: jQuery / CSS:

$('#menu_bar div').css("display","inline");

This jquery puts each div horizontally but I want the .art a tags to be organised vertically so it ends up looking like this: 这个jQuery将每个div水平放置,但我希望垂直.art a标签,因此最终看起来像这样:

在此处输入图片说明

I have tried adding this: 我尝试添加以下内容:

$('.art').css("display","block");

But this makes the menu look like this: 但这使菜单看起来像这样:

在此处输入图片说明

Which is not what I want. 这不是我想要的。

Please see the JSFiddle of my attempt 请参阅我的尝试的JSFiddle

Edit: 编辑:

I have also tried: 我也尝试过:

$('.art a').css("display","block");

Which has ended up making it look like this: 最终使它看起来像这样:

在此处输入图片说明

Getting closer... 越来越近...

Edit 2: 编辑2:

Thank you @Paulie_D is there anyway to prevent this gap (that I highlighted red): 谢谢@Paulie_D是否可以防止这种差距(我以红色突出显示):

在此处输入图片说明

An odd arrangement, but you can do it if you set the menu items to float and adjust spacing: 奇怪的安排,但是如果您将菜单项设置为浮动并调整间距,则可以这样做:

#menu_bar div {
    float: left;
    margin-right: 1em;
}

.art a {
    display: block;
}

#menu_bar div:first-child {
    margin-right: -1.5em;
}

#menu_bar div:nth-of-type(3) {
    margin-left: -2.5em;
}

See Fiddle. 参见小提琴。

You don't need JavaScript for such a simple task, just add some a second level menu, wrap around the children and attach a some styles like: 您不需要JavaScript即可完成如此简单的任务,只需添加一些第二级菜单,环绕子菜单并附加一些样式,例如:

    #menu_bar > .menu_item {
    display: inline-block;
    position:relative;
}
#menu_bar .submenu{
    position: absolute;
    left: 0;
    top: 100%;
}

http://jsfiddle.net/vaop347b/1/ http://jsfiddle.net/vaop347b/1/

A standard ul & li structure would serve you better I'd suggest. 我建议标准的ulli结构会更好地为您服务。

A basic example is as follows. 基本示例如下。 Additional styling is, of course, required but the required layout effect is achieved. 当然,需要附加的样式,但是可以实现所需的布局效果。

 .navbar {} ul, li { margin: 0; padding: 0; list-style-type: none; } .main-menu > li { display: inline-block; vertical-align: top; text-align: center; position:relative } .sub-menu { position:absolute; top:100%; left:50%; transform:translateX(-50%); } .sub-menu > li { text-align: center; white-space:nowrap; width:auto; } 
 <div class="navbar"> <ul class="main-menu"> <li><a href="#">Item 1</a> </li> <li><a href="#">Item 2</a> <ul class="sub-menu"> <li><a href="#">Sub Item 1</a> </li> <li><a href="#">Sub Item 2</a> </li> <li><a href="#">Lorem ipsum dolor.</a> </li> <li><a href="#">Item 4</a> </li> <li><a href="#">Item 5</a> </li> </ul> </li> <li><a href="#">Item 3</a> </li> <li><a href="#">Item 4</a> </li> <li><a href="#">Item 5</a> </li> </ul> </div> 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM