我怎样才能居中2 <div> s?

时间:2017-03-17 00:42:44

标签: html css

如何将<div> div中的两个<hero>居中? Here is my codepen

为了让事情更加清晰,我想要拍摄我的照片和背景图像中央的灰色矩形形状。

HTML

<div class="hero">
  <div class="shape"></div>
  <div class="shape2">
      <p>kjjjjjjjjjkjjjkkjkj</p>
  </div>
</div>

CSS

.hero {
  background-image: url("https://static.pexels.com/photos/48727/pexels-photo-48727.jpeg");
  background-attachment: fixed;
  position:relative;
  width: 100%;
  width: 100vw;
  height: 100%;
  height: 70vh;
}
.shape {
  content:url(http://i1126.photobucket.com/albums/l611/ldocherty1/IMG_0730_zpsiz4dqc47.jpg);
  border-radius: 25px;
  background:grey;
  color:white;
  padding:3px;
  margin:200px auto 0 auto;
  width:200px;
  height:200px;
  position: absolute;
}
.shape2 {
  background: linear-gradient(15deg, #4D5061, #4D5061);
  border-radius: 85px;
  color:white;
  opacity: 0.9;
  padding:0px;
  margin:410px auto 0 auto;
  width:250px;
  height:40px;
  left:200;
  position: absolute;
}

HTML

<html>
<head>
    <html lang="en">
    <meta charset="UTF-8">
    <title>Liam Docherty Digital Portfolio</title>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
    <link rel="stylesheet" href="css/style.css">
</head>
 <body>
        <nav class="navbar navbar-default navbar-fixed-top"> 
            <div class="container-fluid">
                <!-- Brand and toggle get grouped for better mobile display -->
                <div class="navbar-header">
                    <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
                        <span class="sr-only">Toggle navigation</span>
                        <span class="icon-bar"></span>
                        <span class="icon-bar"></span>
                        <span class="icon-bar"></span>
                    </button>
                    <a class="navbar-brand" href="#"><img src="http://placehold.it/60x60" alt="Your Brand Name"></a>
                    <h1 class="nav-title">Liam Docherty's Digital Portfolio</h1>
                </div>
                <!-- Collect the nav links, forms, and other content for toggling -->
                <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
                    <ul class="nav navbar-nav">
                            <li><a href="#">Home</a>
                            </li>
                            <li class="dropdown">
                                <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="true">About Me <span class="caret"></span></a>
                                <ul class="dropdown-menu">
                                    <li><a href="#">Action</a>
                                    </li>
                                    <li><a href="#section3">Contact</a>
                                    </li>
                                    <li><a href="#">Something else here</a>
                                    </li>
                                    <li><a href="#">Separated link</a>
                                    </li>
                                    <li><a href="#">One more separated link</a>
                                    </li>
                                </ul>
                            </li>
                            <li class="dropdown">
                                <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Units <span class="caret"></span></a>
                                <ul class="dropdown-menu">
                                    <li><a href="#">Action</a>
                                    </li>
                                    <li><a href="#">Another action</a>
                                    </li>
                                    <li><a href="#">Something else here</a>
                                    </li>

                                    <li><a href="#">Separated link</a>
                                    </li>

                                    <li><a href="#">One more separated link</a>
                                    </li>
                                </ul>
                            </li>
                            <li><a href="#">Clients</a>
                            </li>
                            <li><a href="#contact-me">Contact Me</a>
                            </li>
                        </ul>
                      </div><!-- /.navbar-collapse -->
                    </div><!-- /.container-fluid -->
        </nav>


    <section id="section1" class="section1">
      <div class="hero">
          <div class="shape"></div>
          <div class="shape2">
              <p>kjjjjjjjjjkjjjkkjkj</p>
          </div>
        </div>





      <a href="#section2"><i class="fa fa-angle-down" style="font-size:100px;"></i></a>

    </section>
    <section id="section2" class="section2">


      <a href="#contact-me"> <i class="fa fa-angle-down" style="font-size:100px;"></i></a>

    </section>

    <section id="contact-me" class="contact_section section3">


      <a href="#section1"> <i class="fa fa-angle-up" style="font-size:100px;"></i></a>

    </section>
    <script   src="https://code.jquery.com/jquery-3.1.1.js" integrity="sha256-16cdPddA6VdVInumRGo6IbivbERE8p7CQR3HzTBuELA="   crossorigin="anonymous"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>

<footer>
    <div class="footer">
        <h2 class="footertext">Copyright © 2017 Liam Docherty's Site. All rights reserved.</h2>
    </div>
 </footer>     
</body>
</html>

CSS

<style>
body {
  margin: 0;
  padding: 0;
}
.navbar.navbar-default {
  background-color: #4D5061;
  height: 10vh;
  z-index: 100;
}
.navbar.navbar-default ul {
  list-style-type: none;
  text-align: right;
}
.navbar.navbar-default ul li {
  display: inline-block;
}
.dropdown-menu li { 
    text-align:center 
}
.dropdown .dropdown-menu {
  background-color: #4D5061;
}
.dropdown .dropdown-menu a {
  color: white;
}
.navbar.navbar-default ul li a {
  display: inline-block;
  padding: 3.5vh 8px 4px;
  color: white;
  text-decoration: none;
  font-size: 14pt;
  font-family: 'Roboto', sans-serif;
}
.navbar.navbar-default ul li:after {
  content: '';
  position: absolute;
  right: 50%;
  bottom: 0;
  left: 50%;
  height: 3px;
  background-color: #FFFFFF;
  border-radius: 9px;
  transition: all .2s;
}
.navbar.navbar-default ul li a:hover {
  color: white;
}
.nav.navbar-nav,
.nav.navbar-nav>li {
  float: none;
}
.navbar.navbar-default ul li:hover:after {
  right: 0;
  left: 0;
}
.nav-title {
  font-size: 14pt;
  margin:0;
  top: 35px;
  left: 50px;
  width: 100%;
  position: absolute;
  text-align: center;
  color: white;
  font-family: 'Roboto', sans-serif;
}
.navbar.navbar-default ul.dropdown-menu li,
.navbar.navbar-default ul.dropdown-menu li a {
  position: relative;
  display: block;
}
#logo {
  padding-top: 2vh;
  padding-left: 20px;
  float: left;
}
.hero {
  background-image: url("https://static.pexels.com/photos/48727/pexels-photo-48727.jpeg");
  background-attachment: fixed;
  position:relative;
  text-align: center;
  width: 100%;
  width: 100vw;
  height: 100%;
  height: 70vh;
}
section {
  position: relative;
  height: 95vh;
}
.section1 {
  height: 100vh;
  text-align: center;
  color: white;
}
.section2 {
  background-color: #11B5E4;
  text-align: center;
  color: white;
}
.section3 {
  background-color: #FFFFFF;
  text-align: center;
  color: white;
}
.fa-angle-down {
  color: #4D5061;
  position: absolute;
  bottom: 0px;
}
.fa-angle-up {
  color: #4D5061;
  position: absolute;
  bottom: 0px;
}
.footer {
  height: 6vh;
  background-color: #4D5061;
  padding:0;
  right:0;
  bottom:0;
  left:0;
}
.footertext{
  font-size: 14pt;
  color: white;
  font-family: 'Roboto', sans-serif;
  text-align: center;
}
.shape {
  content:url(http://i1126.photobucket.com/albums/l611/ldocherty1/IMG_0730_zpsiz4dqc47.jpg);
  border-radius: 25px;
  background:grey;
  color:white;
  padding:3px;
  margin:200px auto 0 auto;
  width:200px;
  height:200px;
  position: absolute;
}
.shape2 {
  background: linear-gradient(15deg, #4D5061, #4D5061);
  border-radius: 85px;
  color:white;
  opacity: 0.9;
  padding:0px;
  margin:410px auto 0 auto;
  width:250px;
  height:40px;
  left:200;
  position: absolute;
}
</style>

6 个答案:

答案 0 :(得分:0)

使用.hero,添加text-align: center;作为属性。

像这样:

.hero{
    background-image: url("https://static.pexels.com/photos/48727/pexels-photo-48727.jpeg");
    background-attachment: fixed;
    position:relative;
    width: 100vw;
    height: 70vh;
    text-align: center;
} 

从每个元素中移除position: absolute:)

答案 1 :(得分:0)

从hero,shape和shape2类中删除position元素。然后添加

position:relative

到section1类。然后减少shape2类的上边距。所有那些东西都在底部,第2节和箭头接触的东西似乎也没关系。它还需要一些修补

答案 2 :(得分:0)

将.shape的边距更改为

margin:200px auto 0 550px;

然后将.shape2的边距更改为

margin:410px auto 0 525px;

它会解决问题但不是那么敏感

答案 3 :(得分:0)

我会将.shape, .shape2包裹在一个新元素中,绝对将新元素放置在水平/垂直中心,然后将2个形状元素置于该元素中心。

.shapes {
  left: 50%;
  top: 50%;
  transform: translate(-50%,-50%);
  position: absolute;
}
.shape, .shape2 {
  margin-left: auto;
  margin-right: auto;
}

body {
  margin: 0;
  padding: 0;
}

.navbar.navbar-default {
  background-color: #4D5061;
  height: 10vh;
  z-index: 100;
}

.navbar.navbar-default ul {
  list-style-type: none;
  text-align: right;
}

.navbar.navbar-default ul li {
  display: inline-block;
}

.dropdown-menu li {
  text-align: center
}

.dropdown .dropdown-menu {
  background-color: #4D5061;
}

.dropdown .dropdown-menu a {
  color: white;
}

.navbar.navbar-default ul li a {
  display: inline-block;
  padding: 3.5vh 8px 4px;
  color: white;
  text-decoration: none;
  font-size: 14pt;
  font-family: 'Roboto', sans-serif;
}

.navbar.navbar-default ul li:after {
  content: '';
  position: absolute;
  right: 50%;
  bottom: 0;
  left: 50%;
  height: 3px;
  background-color: #FFFFFF;
  border-radius: 9px;
  transition: all .2s;
}

.navbar.navbar-default ul li a:hover {
  color: white;
}

.nav.navbar-nav,
.nav.navbar-nav>li {
  float: none;
}

.navbar.navbar-default ul li:hover:after {
  right: 0;
  left: 0;
}

.nav-title {
  font-size: 14pt;
  margin: 0;
  top: 35px;
  left: 50px;
  width: 100%;
  position: absolute;
  text-align: center;
  color: white;
  font-family: 'Roboto', sans-serif;
}

.navbar.navbar-default ul.dropdown-menu li,
.navbar.navbar-default ul.dropdown-menu li a {
  position: relative;
  display: block;
}

#logo {
  padding-top: 2vh;
  padding-left: 20px;
  float: left;
}

.hero {
  background-image: url("https://static.pexels.com/photos/48727/pexels-photo-48727.jpeg");
  background-attachment: fixed;
  position: relative;
  text-align: center;
  width: 100%;
  width: 100vw;
  height: 100%;
  height: 70vh;
}

section {
  position: relative;
  height: 95vh;
}

.section1 {
  height: 100vh;
  text-align: center;
  color: white;
}

.section2 {
  background-color: #11B5E4;
  text-align: center;
  color: white;
}

.section3 {
  background-color: #FFFFFF;
  text-align: center;
  color: white;
}

.fa-angle-down {
  color: #4D5061;
  position: absolute;
  bottom: 0px;
}

.fa-angle-up {
  color: #4D5061;
  position: absolute;
  bottom: 0px;
}

.footer {
  height: 6vh;
  background-color: #4D5061;
  padding: 0;
  right: 0;
  bottom: 0;
  left: 0;
}

.footertext {
  font-size: 14pt;
  color: white;
  font-family: 'Roboto', sans-serif;
  text-align: center;
}

.shape {
  content: url(http://i1126.photobucket.com/albums/l611/ldocherty1/IMG_0730_zpsiz4dqc47.jpg);
  border-radius: 25px;
  background: grey;
  color: white;
  padding: 3px;
  width: 200px;
  margin-bottom: 1em;
}

.shape2 {
  background: linear-gradient(15deg, #4D5061, #4D5061);
  border-radius: 85px;
  color: white;
  opacity: 0.9;
  padding: 0px;
  width: 250px;
}

.shapes {
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  position: absolute;
}

.shape,
.shape2 {
  margin-left: auto;
  margin-right: auto;
}
<html>

<head>
  <html lang="en">
  <meta charset="UTF-8">
  <title>Liam Docherty Digital Portfolio</title>
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
  <link rel="stylesheet" href="css/style.css">
</head>

<body>
  <nav class="navbar navbar-default navbar-fixed-top">
    <div class="container-fluid">
      <!-- Brand and toggle get grouped for better mobile display -->
      <div class="navbar-header">
        <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
                        <span class="sr-only">Toggle navigation</span>
                        <span class="icon-bar"></span>
                        <span class="icon-bar"></span>
                        <span class="icon-bar"></span>
                    </button>
        <a class="navbar-brand" href="#"><img src="http://placehold.it/60x60" alt="Your Brand Name"></a>
        <h1 class="nav-title">Liam Docherty's Digital Portfolio</h1>
      </div>
      <!-- Collect the nav links, forms, and other content for toggling -->
      <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
        <ul class="nav navbar-nav">
          <li><a href="#">Home</a>
          </li>
          <li class="dropdown">
            <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="true">About Me <span class="caret"></span></a>
            <ul class="dropdown-menu">
              <li><a href="#">Action</a>
              </li>
              <li><a href="#section3">Contact</a>
              </li>
              <li><a href="#">Something else here</a>
              </li>
              <li><a href="#">Separated link</a>
              </li>
              <li><a href="#">One more separated link</a>
              </li>
            </ul>
          </li>
          <li class="dropdown">
            <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Units <span class="caret"></span></a>
            <ul class="dropdown-menu">
              <li><a href="#">Action</a>
              </li>
              <li><a href="#">Another action</a>
              </li>
              <li><a href="#">Something else here</a>
              </li>

              <li><a href="#">Separated link</a>
              </li>

              <li><a href="#">One more separated link</a>
              </li>
            </ul>
          </li>
          <li><a href="#">Clients</a>
          </li>
          <li><a href="#contact-me">Contact Me</a>
          </li>
        </ul>
      </div>
      <!-- /.navbar-collapse -->
    </div>
    <!-- /.container-fluid -->
  </nav>


  <section id="section1" class="section1">
    <div class="hero">
      <div class="shapes">
        <div class="shape"></div>
        <div class="shape2">
          <p>kjjjjjjjjjkjjjkkjkj</p>
        </div>
      </div>
    </div>


    <a href="#section2"><i class="fa fa-angle-down" style="font-size:100px;"></i></a>

  </section>
  <section id="section2" class="section2">


    <a href="#contact-me"> <i class="fa fa-angle-down" style="font-size:100px;"></i></a>

  </section>

  <section id="contact-me" class="contact_section section3">


    <a href="#section1"> <i class="fa fa-angle-up" style="font-size:100px;"></i></a>

  </section>
  <script src="https://code.jquery.com/jquery-3.1.1.js" integrity="sha256-16cdPddA6VdVInumRGo6IbivbERE8p7CQR3HzTBuELA=" crossorigin="anonymous"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>

  <footer>
    <div class="footer">
      <h2 class="footertext">Copyright © 2017 Liam Docherty's Site. All rights reserved.</h2>
    </div>
  </footer>
</body>

</html>

答案 4 :(得分:0)

你可以添加

display: flex;
align-items: center;
justify-content: center;

到.hero

答案 5 :(得分:0)

一种将绝对定位元素居中的技术是增加左边:50%和左边距:负面50%。

例如你的形状:

.shape {      content:url(http://i1126.photobucket.com/albums/l611/ldocherty1/IMG_0730_zpsiz4dqc47.jpg);
  border-radius: 25px;
  background:grey;
  color:white;
  padding:3px;
  margin:200px auto 0 auto;
  width:200px;
  height:200px;
  position: absolute;
  left: 50%;
  margin-left: -100px;
}

宽度是200px所以我们添加margin-left:-100px和left:50%;

这是您的codepen的分支:http://codepen.io/adrianrios/pen/ZeaaNN