2016-03-29 2 views
0

print screen of the problemBootstrap 3 добавление контента к "толкнул" ДИВ перемещает другие элементы

Order of the divs in different screen sizes

Здравствуйте. У меня была такая ситуация, как на картинке. Мне нужно переупорядочить 3 элемента div с помощью бутстрапа в определенных местах для разных размеров экрана. На мобильном устройстве они должны быть друг на друга (по умолчанию) - это нормально. Проблема возникает для планшетов и экранов для ноутбуков. Для планшетов и экранов ноутбуков второй div необходимо разместить слева. Поэтому я использую классы .col-sm-6 и .col-sm-pull-6, а для первого и третьего divs .col-sm-6 push-6. Когда нет содержимого в divs, все в порядке, но когда я добавляю какой-то текст, левый div пушшет другой. Как можно добиться плавного добавления текста, не перемещая вправо div.

Для большого экрана div 1 добавлен скрытый класс, поэтому 2 и 3 становятся равными по высоте, поэтому проблем нет. Проблема возникает только для небольших и средних экранов. Спасибо заранее.

Вот код также:

/* ============================= \t \t 
 
Base Element Styles 
 
============================== */ 
 

 
* { 
 
\t box-sizing: border-box; 
 
} 
 

 
body { 
 
\t font-family: sans-serif; 
 
\t line-height: 1.6; 
 
\t color: #fff; 
 
\t text-align: center; 
 
\t padding-top: 55px; 
 
} 
 

 
/*=============================== 
 
\t \t Base Layout Styles 
 
===============================*/ 
 

 
.navbar { 
 
\t margin-bottom: 0; 
 
} 
 

 

 
/* Headline */ 
 

 
.headline { 
 
\t margin-top: 20px; 
 
\t margin-bottom: 20px; 
 
} 
 

 
p { 
 
\t margin: 0; 
 
} 
 

 
.headline-right-top { 
 
\t height: 100px; 
 
\t background: rgba(0,0,0, 0.8); 
 
} 
 

 
.headline-left{ 
 

 
\t background: rgba(0,0,0, 0.3); 
 
} 
 

 
.headline-right-bottom { 
 

 
\t background: rgba(0,0,51, 0.6); 
 
} 
 

 

 

 
/*=============================== 
 
\t \t Media Queries 
 
===============================
rel="stylesheet"/> 
 
<!DOCTYPE html> 
 
<html lang="en"> 
 
<head> 
 
    <meta charset="UTF-8"> 
 

 
    <meta name ="viewport" content="width=device-width, initial-scale = 1.0"> 
 
    <link href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css"> 
 
    <link href="css/style.css" rel="stylesheet" media="screen"> 
 
    <title>Newsfeed</title> 
 
</head> 
 
<body> 
 
    
 
    <div class="navbar navbar-inverse navbar-fixed-top"> 
 
    Login bar 
 
    </div> <!-- /.login-bar --> 
 

 
    <div class="headline"> 
 
      <div class="container"> 
 
       <div class="row"> 
 
        <div class="headline-right-top col-sm-6 col-sm-push-6 hidden-lg"> 
 
         <div class="headline-see-all-news"> 
 
          All News 
 
         </div> 
 
         <div class="banner-region-two"> 
 
          Banner 
 
         </div> 
 
        </div> 
 
        <div class="headline-left col-sm-6 col-sm-pull-6 col-lg-pull-0"> 
 
         <div class="headline-latest"> 
 
          <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Facilis culpa, ducimus molestiae velit veritatis beatae necessitatibus! Eius nihil quidem odio enim eum, eaque quis amet repellendus officiis magni impedit nesciunt.</p> 
 
          <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Facilis culpa, ducimus molestiae velit veritatis beatae necessitatibus! Eius nihil quidem odio enim eum, eaque quis amet repellendus officiis magni impedit nesciunt.</p> 
 
         </div> 
 
        </div> 
 
        <div class="headline-right-bottom col-sm-6 col-sm-push-6 col-lg-push-0"> 
 
         <div class="headline-oppinions"> 
 
          <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Facilis culpa, ducimus molestiae velit veritatis beatae necessitatibus! Eius nihil quidem odio enim eum, eaque quis amet repellendus officiis magni impedit nesciunt.</p> 
 
         </div> 
 
        </div> 
 
       </div> <!-- /.row --> 
 
      </div> <!-- /.container --> 
 
     </div> <!-- /.headline --> 
 
</body> 
 
</html>

ответ

0

Хорошо ... Так что вопрос, в ноутбук/таблетки, у вас есть кол-см-6 + кол-см-6 = col-md-12, который будет равен одной полной строке, а затем col-sm-6, который всегда будет новой строкой. Поэтому, когда вы добавляете контент в свой первый col-sm-6 (head-see-all-news), он будет выталкивать последний столбец-6 (заголовок справа) вниз, так как он находится на следующей «строке». Чтобы исправить это, вы можете сделать одну из двух вещей.

  1. Четко определите правильные две колонки как свою колонку в планшете/ноутбуке. Это приведет к повторному коду, который вы должны скрыть/показать в зависимости от размера экрана и может стать беспорядочным.

  2. Переписать поплавки на элементах в представлении см с @media запросов и удалить Тяни/Толкай

HTML:

<div class="container"> 
    <div class="row"> 
     <div class="headline-right-top col-sm-6 hidden-lg"> 
      <div class="headline-see-all-news"> 
       All News 
      </div> 
      <div class="banner-region-two"> 
       Banner 
      </div> 
     </div> 
     <div class="headline-left col-sm-6 col-lg-pull-0"> 
      <div class="headline-latest"> 
       <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Facilis culpa, ducimus molestiae velit veritatis beatae necessitatibus! Eius nihil quidem odio enim eum, eaque quis amet repellendus officiis magni impedit nesciunt.</p> 
       <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Facilis culpa, ducimus molestiae velit veritatis beatae necessitatibus! Eius nihil quidem odio enim eum, eaque quis amet repellendus officiis magni impedit nesciunt.</p> 
      </div> 
     </div> 
     <div class="headline-right-bottom col-sm-6 col-lg-push-0"> 
      <div class="headline-oppinions"> 
       <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Facilis culpa, ducimus molestiae velit veritatis beatae necessitatibus! Eius nihil quidem odio enim eum, eaque quis amet repellendus officiis magni impedit nesciunt.</p> 
      </div> 
     </div> 
    </div> <!-- /.row --> 
</div> <!-- /.container --> 

CSS:

@media (min-width: 768px;) 
{ 
    .headline-right-top{ 
     float: right !important; 
    } 
} 

Я тестировал это с помощью jsfiddle, и, похоже, он работал нормально. jsfiddle, похоже, не поддерживает медиа-запросы, поэтому я не связывал скрипку. Я не уверен на 100%, если это будет работать для вашей ситуации, но попробуйте и дайте мне знать.

Редактировать: вам может потребоваться второй медиа-запрос для удаления float на устройствах xs.

@media (max-width: 768px;) 
{ 
    .headline-right-top{ 
     float: none !important; 
    } 
} 
Смежные вопросы