带有三个div的Css标题并排响应

时间:2016-12-12 08:41:52

标签: html css

我创建了这个简单的标题,并想知道这是否是将div放在一起的好方法? 我也正确地将div放在中心,还是应该使用像素作为宽度而不是百分比?

现场演示:https://jsfiddle.net/d4v91ekb/

a {
   text-decoration:none;
}
.container {
    width: 100%;
    margin: 0 auto;
    max-width: 1200px;
    box-sizing: border-box;
}
.row {
    overflow:hidden;
}
.header {
    padding: 8px 8px 32px 8px;
    background: #FFCA00;
    height: 200px;
}
.logo {
    background: url('https://placehold.it/200x200') no-repeat;
    background-size: 100px 100px;
    width:100px;
    height:100px;
    text-indent:-100%;
    float:left;
    display:inline-block;
}
.siteName {
    display:inline-block;
    margin-top: 40px;
    font-size: 15pt;
    color: white;
    font-weight: bold;
    float:left;
}

.mainNav {
    float:left;
    display:inline-block;
    width:50%;
    margin-left: auto;
    margin-right: auto;
    text-transform: uppercase;
    margin-top: 25px;
}
.mainNav ul{
        list-style-type: none;
        text-align: center;
    }
.mainNav ul li{
        display:inline;
    }
.mainNav ul li a{
        color:#fff;
        padding: 5px;
    }
.mainNav ul li a:hover{
        padding: 5px;
        border-bottom:2px solid #fff;
    }
.mainNav .current{
        padding: 5px;
        color:black;
        border-bottom:2px solid #fff;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<header id="header" class="header">
        <div class="container">
            <div class="row"> 
            
                <a href="index.html" title=""><div class="logo"></div></a>
                <a href="index.html" title=""><div class="siteName">Site full name here</div></a>
                
            <nav class="mainNav">
                <ul>
                    <li class="current"><a href="" title="">Menu 01</a></li>
                    <li><a href="" title="">Menu 02</a></li>
                    <li><a href="" title="">Menu 03</a></li>
                    <li><a href="" title="">Menu 04</a></li>
                </ul>
            </nav>
            
            </div>
        </div>
    </header><!-- /header -->

2 个答案:

答案 0 :(得分:0)

目前尚不清楚如何对齐菜单。 但是,从您提供的示例中,我猜以下代码会使您的菜单响应。

.mainNav {
  width: 50%;
  text-transform: uppercase;
}

.mainNav ul {
  display: flex;
  list-style-type: none;
  text-align: center;
}

.mainNav ul li {
  flex-grow: 1;
}

请参阅the fiddle

修改1

如果要将菜单放在与标题不同的行中,请使用以下代码(站点徽标和名称包含在div.title中)

#header .row{
  display: flex;
  flex-direction: column;
}
.mainNav {
  display: block;
  width: 75%;
  margin: 0 auto;
  text-transform: uppercase;
}

.mainNav ul {
  display: flex;
  list-style-type: none;
  text-align: center;
  padding: 0;
}

请参阅this fiddle

答案 1 :(得分:0)

将容器类用于display:block;

.container {
   width: 100%;
   margin: 0 auto;
   max-width: 1200px;
   box-sizing: border-box;
   display:block;

}

如果您想测试将宽度减少到50%并测试它是否有效。

Example fiddle