Расположение MDL-карты в HTML - PullRequest
0 голосов
/ 06 сентября 2018

Я относительно новичок в леях и пытаюсь понять, как расположить карточки внутри или рядом с фрагментом текста, который у меня есть. Я очень близок, но я пробовал много разных способов, и, похоже, я не добиваюсь желаемого результата.

Мне бы хотелось, чтобы текст был слева (что меня устраивает в тот момент, когда он расположен) и две широкие карты MDL справа друг над другом, в соответствии с текстом.

Пока у меня есть:

    <body>
        <div class="header">

                <a class="logo" target="_blank"><img src=".\images\logo.png" border="0" alt="logo" width="90"></a>
                <div class="header-left">
                  <a href="index.html">Home</a>
                  <a href="wall.html">Wall</a>
                  <a class="active" href="shop.html">Shop</a>
                  <a href="blog.html">Blog</a>
                  <a href="faq.html">FAQ</a>
            <div class="header-right">
                  <a class="active" href="http://instagram.com/woolybox" target="_blank"><img src=".\images\instagram.png" border="0" alt="instagram"img width="20" height="20"></a>
                  <a href="http://twitter.com/wooly_box" target="_blank"><img src=".\images\twitter.png" border="0" alt="twitter" img width="20" height="20"></a>
                </div>
                </div>
<p>
<table>
  <div class="boxed-1">
      Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus sed feugiat lectus. Phasellus maximus, ex nec bibendum volutpat, justo erat pellentesque massa, vel malesuada sem lectus tincidunt orci. Aenean eleifend est sit amet dapibus ullamcorper. Nam ornare finibus ex vitae interdum. Sed quis purus eros. Sed ut porttitor dolor, eget ultrices justo. Sed eu leo porta, mattis libero eu, sagittis metus. Vivamus nec lobortis nisi. Suspendisse posuere enim arcu, at interdum dui congue vitae. Aliquam vestibulum accumsan magna. Vivamus a arcu nunc. Cras euismod lacinia augue sed elementum. Phasellus dignissim semper mi at sollicitudin. Vivamus maximus semper nulla. Donec luctus, dolor non viverra aliquam, enim arcu imperdiet sem, et pretium dui ante ac lectus.
    </div></table>
<p>
  <div class="col">
    <div class="row">
      <div class="float-right">
        <div class="demo-card-wide mdl-card mdl-shadow--2dp">
            <div class="mdl-card__title">
              <h2 class="mdl-card__title-text">Welcome</h2>
            </div>
            <div class="mdl-card__supporting-text">
              Lorem ipsum dolor sit amet, consectetur adipiscing elit.
              Mauris sagittis pellentesque lacus eleifend lacinia...
            </div>
            <div class="mdl-card__actions mdl-card--border">
              <a class="mdl-button mdl-button--colored mdl-js-button mdl-js-ripple-effect">
                Get Started
              </a>
            </div>
            <div class="mdl-card__menu">
              <button class="mdl-button mdl-button--icon mdl-js-button mdl-js-ripple-effect">
                <i class="material-icons">share</i>
              </button>
            </div>
          </div>
        </div>
      </div>
    </div>
  <p>
      <div class="col">
        <div class="row">
          <div class="float-right">
              <div class="demo-card-wide mdl-card mdl-shadow--2dp">
                  <div class="mdl-card__title">
                    <h2 class="mdl-card__title-text">Welcome</h2>
                  </div>
                  <div class="mdl-card__supporting-text">
                    Lorem ipsum dolor sit amet, consectetur adipiscing elit.
                    Mauris sagittis pellentesque lacus eleifend lacinia...
                  </div>
                  <div class="mdl-card__actions mdl-card--border">
                    <a class="mdl-button mdl-button--colored mdl-js-button mdl-js-ripple-effect">
                      Get Started
                    </a>
                  </div>
                  <div class="mdl-card__menu">
                    <button class="mdl-button mdl-button--icon mdl-js-button mdl-js-ripple-effect">
                      <i class="material-icons">share</i>
                    </button>
                  </div>
                </div>
              </div>
            </div>
          </div>
    <p>



    <footer class="mdl-mega-footer">
        <div class="mdl-mega-footer__middle-section">

          <div class="mdl-mega-footer__drop-down-section">
            <input class="mdl-mega-footer__heading-checkbox" type="checkbox" checked>
            <h1 class="mdl-mega-footer__heading">woolyBox ltd.</h1>
            <ul class="mdl-mega-footer__link-list">
              <li><a href="#">About</a></li>
              <li><a href="#">Shop</a></li>
              <li><a href="#">FAQ</a></li>
              <li><a href="#">Contact us</a></li>
            </ul>
          </div>

        </div>

        <div class="mdl-mega-footer__bottom-section">
          <ul class="mdl-mega-footer__link-list">
            <li><a href="#">Privacy & Terms</a></li>
          </ul>
        </div>
      </p></div>

</body>

и CSS:

html, body { 
  height: 100%; 
  min-height: 100%; 
  background-color: #ffffff;
  font-family: 'Courier New', Courier, monospace;
}

body {
  background: #fafafa;
  position: relative;
}

table { 
    height: 100%; 
    width: 100%; 
    background-color: #f4d442;
    font-family: 'Courier New', Courier, monospace;
}

td { 
  height: 100%; 
  width: 100%; 
  vertical-align: middle; 
  text-align: right;
  font-family: 'Courier New', Courier, monospace;
}



.header {
    overflow: hidden;
    background-color: #ffffff;
  }


  .header a {
    float: left;
    color: grey;
    text-align: center;
    padding-top: 16px;
    padding: 24px;
    text-decoration: none;
    font-family: 'Courier New', Courier, monospace;
    font-size: 18px; 
    line-height: 25px;

  }


  .header a.logo {
    font-size: 25px;
    padding-top: 4px;
    font-weight: bold;
  }


  .header a:hover {
    color: black;
  }


  .header a.active {
    color: #f4d442;
  }


  .header-right {
    float: right;
  }

  @media screen and (max-width: 500px) {
    .header a {
      float: none;
      display: block;
      text-align: left;
    }

  .header-right {
      float: none;
    }
  }


.content {
  padding: 16px;
}


  .boxed{
    width: 50vw;
    height: 60vh;
    box-align: left;
    text-align: justify;
    padding: 5%;
    background-color:  #fff;
    margin: 5%;
    margin-left: 5%; 
  }

/* .image {

} */

.boxed-1 {
  width: 25%;
  height: 100%;
  text-align: justify;
  padding-top: 10%;
  background-color:  #fff;
  margin: 0 auto;
  margin-left: 5%; 
  margin-right: 80%;
}



  .container-wrapper{text-align:center;}

  .container-1,
  .container-2,
  .container-3{width:475px; height:400px; display:inline-block; margin-left:10px; font-family: 'Courier New', Courier, monospace;}

  .container-1{background:grey; margin-left:0;}
  .container-2{background:grey;}
  .container-3{background:grey;}


  @media all and (max-width: 650px) {
      .container-1{
        width:100%; 
        display:block; 
        margin:0;
      }

      .container-2{
        width:100%; 
        display:block; 
        margin:0;
      }
      .container-3{
        width:100%;
        display:block; 
        margin:0;
      }
  }

  .card-img-top {
    height: 200px;
    float: left;
    margin: 1rem;
    position: relative;
    justify-content: center;
  }

  .card {
    margin: 0 auto; 
    float: none;
    margin-bottom: 5px;
  }

  .card-text {
  color: grey;
  text-align: justify;
  padding: 5px;
  text-decoration: none;
  font-family: 'Courier New', Courier, monospace;
  font-size: 16px; 
  line-height: 25px;

  }
  .demo-card-square.mdl-card {
    width: 320px;
    height: 320px;
    float: left;
    margin: 1rem;
    position: relative;
    justify-content: center;
  }

  .demo-card-square.mdl-card:hover {
    box-shadow: 0 8px 10px 1px rgba(0, 0, 0, .14), 0 3px 14px 2px rgba(0, 0, 0, .12), 0 5px 5px -3px rgba(0, 0, 0, .2);
  }

  .demo-card-square > .mdl-card__title {
    color: #fff;
    background: #03a9f4;
  }

  .demo-card-square > .mdl-card__accent {
    background: #ff9800;
  }

 .demo-card-wide.mdl-card {
  width: 100%;

}
.demo-card-wide > .mdl-card__title {
  color: #fff;
  height: 176px;
  background: url('../assets/demos/welcome_card.jpg') center / cover;
}
.demo-card-wide > .mdl-card__menu {
  color: #fff;
}

Кто-нибудь может указать мне в правильном направлении, где я иду не так?

1 Ответ

0 голосов
/ 06 сентября 2018

Существует множество способов получить макет, который вы ищете. Самый простой способ использовать flexbox . Ниже приведен минимальный пример макета Material Design Lite с верхним колонтитулом, основным содержимым и нижним колонтитулом, который включает в себя расположение текста и карты, которые вы описываете.

Вы увидите, что для элемента main html установлено значение display: flex, и align-items: center, который отображает дочерние элементы рядом и вертикально выровнен по центру (вы можете поэкспериментировать с различными параметрами align-items, если ищем какое-то другое вертикальное выравнивание). Карты обернуты в div, поэтому они отображаются в стопке рядом с текстом (а не рядом друг с другом).

.mdl-layout__content main {
  padding: 16px;
  display: flex;
  align-items: center;
}

.mdl-card {
  margin: 8px;
}
<!DOCTYPE html>
<html lang="en">

  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Material Design Lite layout example</title>
    <link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
    <link rel="stylesheet" href="https://code.getmdl.io/1.3.0/material.indigo-pink.min.css">
  </head>

  <body>

    <div class="mdl-layout mdl-js-layout mdl-layout--fixed-header">

      <header class="mdl-layout__header">
        <div class="mdl-layout__header-row">
          <span class="mdl-layout-title">Logo</span>
          <div class="mdl-layout-spacer"></div>
          <nav class="mdl-navigation">
            <a class="mdl-navigation__link" href="">Link</a>
            <a class="mdl-navigation__link" href="">Link</a>
            <a class="mdl-navigation__link" href="">Link</a>
            <a class="mdl-navigation__link" href="">Link</a>
          </nav>
        </div>
      </header>

      <div class="mdl-layout__content">

        <main>

          <div class="text">
            Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus sed feugiat lectus. Phasellus maximus, ex nec bibendum volutpat, justo erat pellentesque massa, vel malesuada sem lectus tincidunt orci. Aenean eleifend est sit amet dapibus ullamcorper.
            Nam ornare finibus ex vitae interdum. Sed quis purus eros. Sed ut porttitor dolor, eget ultrices justo. Sed eu leo porta, mattis libero eu, sagittis metus. Vivamus nec lobortis nisi. Suspendisse posuere enim arcu, at interdum dui congue vitae.
            Aliquam vestibulum accumsan magna. Vivamus a arcu nunc. Cras euismod lacinia augue sed elementum. Phasellus dignissim semper mi at sollicitudin. Vivamus maximus semper nulla. Donec luctus, dolor non viverra aliquam, enim arcu imperdiet sem,
            et pretium dui ante ac lectus.
          </div>

          <div class="cards">

            <div class="mdl-card mdl-shadow--2dp">
              <div class="mdl-card__title">
                <h2 class="mdl-card__title-text">Welcome</h2>
              </div>
              <div class="mdl-card__supporting-text">
                Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris sagittis pellentesque lacus eleifend lacinia...
              </div>
              <div class="mdl-card__actions mdl-card--border">
                <a class="mdl-button mdl-button--colored mdl-js-button mdl-js-ripple-effect">
      Get Started
    </a>
              </div>
              <div class="mdl-card__menu">
                <button class="mdl-button mdl-button--icon mdl-js-button mdl-js-ripple-effect">
      <i class="material-icons">share</i>
    </button>
              </div>
            </div>

            <div class="mdl-card mdl-shadow--2dp">
              <div class="mdl-card__title">
                <h2 class="mdl-card__title-text">Welcome</h2>
              </div>
              <div class="mdl-card__supporting-text">
                Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris sagittis pellentesque lacus eleifend lacinia...
              </div>
              <div class="mdl-card__actions mdl-card--border">
                <a class="mdl-button mdl-button--colored mdl-js-button mdl-js-ripple-effect">
      Get Started
    </a>
              </div>
              <div class="mdl-card__menu">
                <button class="mdl-button mdl-button--icon mdl-js-button mdl-js-ripple-effect">
      <i class="material-icons">share</i>
    </button>
              </div>
            </div>

          </div>
          <!-- close cards -->

        </main>

        <footer class="mdl-mini-footer">
          <div class="mdl-mini-footer__left-section">
            <div class="mdl-logo">Title</div>
            <ul class="mdl-mini-footer__link-list">
              <li><a href="#">Help</a></li>
              <li><a href="#">Privacy & Terms</a></li>
            </ul>
          </div>
        </footer>

      </div>
      <!-- close mdl-layout__content -->

    </div>
    <!-- close mdl-layout -->

    <script src="https://code.getmdl.io/1.3.0/material.min.js"></script>

  </body>

</html>

В вашем собственном html похоже, что вы используете теги p как разрывы в некоторых местах без закрытия тега (есть тег br, который больше соответствует вашим намерениям, но я бы рекомендовал против этого как вы можете получить то, что вы ищете, установив соответствующие значения margin и / или padding в вашем CSS). Вы также забыли закрыть тег footer. Вы можете использовать html validator , чтобы помочь вам устранить подобные проблемы синтаксиса.

...