Изображение с начальной загрузкой, разрыв столбца / div

Я создал своего рода CMS, и у меня возникли проблемы с использованием TinyMCE и Bootstrap.

У меня есть страница, на которой выделен div, и если пользователь нажимает на div, они могут выбирать изображения из модального окна. Изображение вставляется в экземпляр tinymce, и когда пользователь нажимает «сохранить», оно сохраняется в базе данных с помощью html (из tinymce), но также добавляется в div для предварительного просмотра.

Мне нужна помощь в поиске способа убедиться, что независимо от размера изображения, оно остается в столбце начальной загрузки.

Пустой div:

enter image description here и после добавления большого изображения

enter image description here

Есть ли что-то, что я могу использовать в html здесь для начальной загрузки, что гарантирует, что даже если огромное изображение будет помещено в tinyMce, он не сломает div?

<html>

<head>
  <title>Template One</title>

  <style type="text/css">
    @import "style.css";
    html,
    body {
      height: 100%;
      overflow: hidden;
    }
    
    .modal-lg {
      max-width: 80% !important;
    }
    
    .my-container {
      display: flex;
      flex-direction: column;
      height: 100%;
    }
    
    .my-container>.top [class^="col-"],
    .my-container>.bottom [class^="col-"] {
      background-color: #929292;
      color: white;
      text-align: center;
    }
    
    .my-container>.middle {
      flex-grow: 1;
      padding: 30px;
      background-size: cover;
    }
    
    .my-container>.middle>* {}
    
    #clock {
      /*background-color:#333;*/
      font-family: sans-serif;
      font-size: 40px;
      text-shadow: 0px 0px 1px #fff;
      color: #fff;
    }
    
    #clock span {
      color: #fff;
      font-size: 40px;
      position: relative;
    }
    
    #date {
      margin-top: -10px;
      letter-spacing: 3px;
      font-size: 20px;
      font-family: arial, sans-serif;
      color: #fff;
    }
    
    .buttonContainer {
      display: flex;
      flex-direction: column;
      justify-content: center;
    }
  </style>

  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-alpha.6/css/bootstrap.css" crossorigin="anonymous">
  <link href="https://cdn.jsdelivr.net/npm/gijgo@1.9.6/css/gijgo.min.css" rel="stylesheet" type="text/css" />
  <link href="https://rawgit.com/tempusdominus/bootstrap-4/master/build/css/tempusdominus-bootstrap-4.min.css" rel="stylesheet" />
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
  <link href="src/ytv.css" type="text/css" rel="stylesheet" />

  <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
  <script src="https://npmcdn.com/tether@1.2.4/dist/js/tether.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.0/moment-with-locales.js"></script>
  <script src="https://rawgit.com/tempusdominus/bootstrap-4/master/build/js/tempusdominus-bootstrap-4.min.js"></script>
  <script src="https://cdn.jsdelivr.net/npm/gijgo@1.9.6/js/gijgo.min.js" type="text/javascript"></script>
  <script type='text/javascript' src='//cdn.jsdelivr.net/jquery.marquee/1.4.0/jquery.marquee.min.js'></script>


</head>

<body>

  <div class="container-fluid my-container">
    <div class="row middle">
      <div class="col-lg-6 leftFifty" id="leftFifty">
        <div class="leftContent" style="background-color: white; height: 100%; border: dotted 1px black;">
          <!-- This is the div that is clicked in to select an image -->
        </div>
      </div>
      <div class="col-lg-6 rightFifty" id="rightFifty">
        <div class="rightContent" style="background-color: white; height: 100%; border: dotted 1px black; ">
          <!-- This is the div that is clicked in to select an image -->
        </div>
      </div>
    </div>
  </div>
</body>

</html>

изображения - это теги img или фоновые изображения?

David Leonardo Molina Ruiz Dav 13.09.2018 21:50

У них есть тег изображения, потому что именно так их сохраняет TinyMCE. Но иногда это будет текст, а не изображение, поэтому я не могу явно создать тег изображения, хотя могу сказать что-то вроде «ЕСЛИ img, то ...»

Geoff_S 13.09.2018 21:53
0
2
534
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

На самом деле все, что вам нужно сделать, это установить width: 100%; Высота может быть auto или полностью опущена для сохранения соотношения сторон.

img {
  width: 100%;
  height: auto;
}
<html>

<head>
  <title>Template One</title>

  <style type="text/css">
    @import "style.css";
    html,
    body {
      height: 100%;
      overflow: hidden;
    }
    
    .modal-lg {
      max-width: 80% !important;
    }
    
    .my-container {
      display: flex;
      flex-direction: column;
      height: 100%;
    }
    
    .my-container>.top [class^="col-"],
    .my-container>.bottom [class^="col-"] {
      background-color: #929292;
      color: white;
      text-align: center;
    }
    
    .my-container>.middle {
      flex-grow: 1;
      padding: 30px;
      background-size: cover;
    }
    
    .my-container>.middle>* {}
    
    #clock {
      /*background-color:#333;*/
      font-family: sans-serif;
      font-size: 40px;
      text-shadow: 0px 0px 1px #fff;
      color: #fff;
    }
    
    #clock span {
      color: #fff;
      font-size: 40px;
      position: relative;
    }
    
    #date {
      margin-top: -10px;
      letter-spacing: 3px;
      font-size: 20px;
      font-family: arial, sans-serif;
      color: #fff;
    }
    
    .buttonContainer {
      display: flex;
      flex-direction: column;
      justify-content: center;
    }
  </style>

  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-alpha.6/css/bootstrap.css" crossorigin="anonymous">
  <link href="https://cdn.jsdelivr.net/npm/gijgo@1.9.6/css/gijgo.min.css" rel="stylesheet" type="text/css" />
  <link href="https://rawgit.com/tempusdominus/bootstrap-4/master/build/css/tempusdominus-bootstrap-4.min.css" rel="stylesheet" />
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
  <link href="src/ytv.css" type="text/css" rel="stylesheet" />

  <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
  <script src="https://npmcdn.com/tether@1.2.4/dist/js/tether.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.0/moment-with-locales.js"></script>
  <script src="https://rawgit.com/tempusdominus/bootstrap-4/master/build/js/tempusdominus-bootstrap-4.min.js"></script>
  <script src="https://cdn.jsdelivr.net/npm/gijgo@1.9.6/js/gijgo.min.js" type="text/javascript"></script>
  <script type='text/javascript' src='//cdn.jsdelivr.net/jquery.marquee/1.4.0/jquery.marquee.min.js'></script>


</head>

<body>

  <div class="container-fluid my-container">
    <div class="row middle">
      <div class="col-lg-6 leftFifty" id="leftFifty">
        <div class="leftContent" style="background-color: white; height: 100%; border: dotted 1px black;">
          <img src="https://via.placeholder.com/600x250" />
          <!-- This is the div that is clicked in to select an image -->
        </div>
      </div>
      <div class="col-lg-6 rightFifty" id="rightFifty">
        <div class="rightContent" style="background-color: white; height: 100%; border: dotted 1px black; ">
          <!-- This is the div that is clicked in to select an image -->
        </div>
      </div>
    </div>
  </div>
</body>

</html>

Ничего себе, эта проблема на самом деле решена, но я поместил другое изображение в правый div, которое было намного выше и шире, и оно по-прежнему выходит за пределы высоты.

Geoff_S 13.09.2018 22:02

Таким образом, левое изображение было 1800x824, и оно отлично подходит, правое изображение div, которое я тестировал, было 1024 x 942, и его ширина была ограничена, но нижняя часть вышла за пунктирную линию.

Geoff_S 13.09.2018 22:13

Может ли это быть из-за того, что у меня есть строки выше и ниже этого .row-middle?

Geoff_S 13.09.2018 22:27

В скрипке, если я делаю 1024x942, кажется, подходит

Geoff_S 13.09.2018 22:42

Попробуйте дать изображениям максимальную ширину: 100%; максимальная высота: 100%

TheRobQ 13.09.2018 23:16

@RobQuan Я попробовал max-height, и он работал в скрипке, но, возможно, я обнаружил проблему: изображения, проходящие через TinyMCE, имеют тег абзаца. Когда я помещаю тег <p> вокруг изображения, он прерывается для изображения 1024x942.

Geoff_S 13.09.2018 23:21

@RobQuan проверь эту скрипку. это использует максимальную высоту и имеет тег p вокруг изображения в настоящее время jsfiddle.net/vbuf0gwL/12

Geoff_S 13.09.2018 23:23

Попробуйте эту скрипку: jsfiddle.net/3rwxgf0v Установите автоматическое переполнение родительского тега p

TheRobQ 14.09.2018 17:47

Другие вопросы по теме