【问题标题】:Material Design Lite white space between divsdiv之间的Material Design Lite空白
【发布时间】:2016-03-25 12:39:45
【问题描述】:

我正在使用 Material Design lite 设计一个网站,但我无法弄清楚为什么页面内容中的 div 之间存在空格。当我为我的任何部分添加一个新的 div 时,它会在以前的 div 或标题之间创建一个空白。请看下面的代码:

demo-layout-transparent .mdl-layout__header,
.demo-layout-transparent .mdl-layout__drawer-button {
  color: white;
}

.mdl-layout-title {
    font-family: 'League Spartan';
    font-size: 2em;
    margin-top: 5px;
}

.Home-section h1{
    color: floralwhite;
    font-family: 'League Spartan';
    text-align: center;
}

.Home-section span {
    color: deepskyblue;
}

.About-section {
    background-color: black;
    clear: inherit;
}

.Home-section {
    background: url('https://images.unsplash.com/photo-1456428199391-a3b1cb5e93ab?ixlib=rb-0.3.5&q=80&fm=jpg&crop=entropy&s=db130336e8134fc3f734dbc4318f5c5e');
    background-size: cover;
}
<!DOCTYPE html>

<html>

<head>
  <link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
  <link rel="stylesheet" href="https://code.getmdl.io/1.1.3/material.blue-cyan.min.css" />
  <script defer src="https://code.getmdl.io/1.1.3/material.min.js"></script>
  <link rel="stylesheet" href="main.css">
    
    <style>
    #view-source {
      position: fixed;
      display: block;
      right: 0;
      bottom: 0;
      margin-right: 40px;
      margin-bottom: 40px;
      z-index: 900;
    }
    </style>
</head>
  
<body>
    <div class="demo-layout-transparent mdl-layout mdl-js-layout" id="header">
      <header class="mdl-layout__header mdl-layout__header--waterfall">
        <div class="mdl-layout__header-row">
          <!-- Title -->
          <span class="mdl-layout-title">Design Ambition</span>
          <!-- Add spacer, to align navigation to the right -->
          <div class="mdl-layout-spacer"></div>
          <!-- Navigation -->
          <nav class="mdl-navigation">
            <a class="mdl-navigation__link" href="">Home</a>
            <a class="mdl-navigation__link" href="">About</a>
            <a class="mdl-navigation__link" href="">Portfolio</a>
            <a class="mdl-navigation__link" href="">Contact</a>
          </nav>
        </div>
      </header>

      <div class="mdl-layout__drawer mdl-layout--small-screen-only">

        <span class="mdl-layout-title">Design <br/> Ambition`</span>
        <nav class="mdl-navigation">
          <a class="mdl-navigation__link" href="">Home</a>
          <a class="mdl-navigation__link" href="">About</a>
          <a class="mdl-navigation__link" href="">Portfolio</a>
          <a class="mdl-navigation__link" href="">Contact</a>
        </nav>
      </div>
        <main class="mdl-layout__content">
            <div class="page-content">
                <div class="Home-section"><h1>WE Create <span>DESIGNS</span> <br/> and People Just <br/>.........<br/><span>ADMIRE</span></h1></div>
                <div class="About-section"><h1>ABOUT</h1></div>
            </div>
        </main>
</div>
    
</body>
</html>

提前感谢您的建议。

【问题讨论】:

    标签: html css material-design material-design-lite


    【解决方案1】:

    .Home-section 中有一个h1 标签,.About-section 中有另一个标签,两者的垂直边距均为24px。这是造成间距的原因。

    @Guffa 的Here is a very concise explanation 解释为什么你会看到这个间距。

    demo-layout-transparent .mdl-layout__header,
    .demo-layout-transparent .mdl-layout__drawer-button {
      color: white;
    }
    
    .mdl-layout-title {
        font-family: 'League Spartan';
        font-size: 2em;
        margin-top: 5px;
    }
    
    .Home-section h1{
        color: floralwhite;
        font-family: 'League Spartan';
        text-align: center;
    }
    
    .Home-section span {
        color: deepskyblue;
    }
    
    .About-section {
        background-color: black;
        clear: inherit;
    }
    
    .Home-section {
        background: url('https://images.unsplash.com/photo-1456428199391-a3b1cb5e93ab?ixlib=rb-0.3.5&q=80&fm=jpg&crop=entropy&s=db130336e8134fc3f734dbc4318f5c5e');
        background-size: cover;
    }
    
    h1 {
        margin: 0 !important;
    }
    <!DOCTYPE html>
    
    <html>
    
    <head>
      <link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
      <link rel="stylesheet" href="https://code.getmdl.io/1.1.3/material.blue-cyan.min.css" />
      <script defer src="https://code.getmdl.io/1.1.3/material.min.js"></script>
      <link rel="stylesheet" href="main.css">
        
        <style>
        #view-source {
          position: fixed;
          display: block;
          right: 0;
          bottom: 0;
          margin-right: 40px;
          margin-bottom: 40px;
          z-index: 900;
        }
        </style>
    </head>
      
    <body>
        <div class="demo-layout-transparent mdl-layout mdl-js-layout" id="header">
          <header class="mdl-layout__header mdl-layout__header--waterfall">
            <div class="mdl-layout__header-row">
              <!-- Title -->
              <span class="mdl-layout-title">Design Ambition</span>
              <!-- Add spacer, to align navigation to the right -->
              <div class="mdl-layout-spacer"></div>
              <!-- Navigation -->
              <nav class="mdl-navigation">
                <a class="mdl-navigation__link" href="">Home</a>
                <a class="mdl-navigation__link" href="">About</a>
                <a class="mdl-navigation__link" href="">Portfolio</a>
                <a class="mdl-navigation__link" href="">Contact</a>
              </nav>
            </div>
          </header>
    
          <div class="mdl-layout__drawer mdl-layout--small-screen-only">
    
            <span class="mdl-layout-title">Design <br/> Ambition`</span>
            <nav class="mdl-navigation">
              <a class="mdl-navigation__link" href="">Home</a>
              <a class="mdl-navigation__link" href="">About</a>
              <a class="mdl-navigation__link" href="">Portfolio</a>
              <a class="mdl-navigation__link" href="">Contact</a>
            </nav>
          </div>
            <main class="mdl-layout__content">
                <div class="page-content">
                    <div class="Home-section"><h1>WE Create <span>DESIGNS</span> <br/> and People Just <br/>.........<br/><span>ADMIRE</span></h1></div>
                    <div class="About-section"><h1>ABOUT</h1></div>
                </div>
            </main>
    </div>
        
    </body>
    </html>

    【讨论】:

    • 感谢您的帮助。所以你的意思是我只需要将 h1 的边距设置为 0 即可获得结果。以及 h1 如何自己获得 24px 的边距?
    【解决方案2】:

    请试试这个:

    h1 {
        font-size: 56px;
        line-height: 1.35;
        letter-spacing: -.02em;
        margin: 0px 0;
    }
    

    【讨论】: