Я создал своего рода CMS, и у меня возникли проблемы с использованием TinyMCE и Bootstrap.
У меня есть страница, на которой выделен div, и если пользователь нажимает на div, они могут выбирать изображения из модального окна. Изображение вставляется в экземпляр tinymce, и когда пользователь нажимает «сохранить», оно сохраняется в базе данных с помощью html (из tinymce), но также добавляется в div для предварительного просмотра.
Мне нужна помощь в поиске способа убедиться, что независимо от размера изображения, оно остается в столбце начальной загрузки.
Пустой div:
и после добавления большого изображения
Есть ли что-то, что я могу использовать в 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/[email protected]/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/[email protected]/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/[email protected]/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>
У них есть тег изображения, потому что именно так их сохраняет TinyMCE. Но иногда это будет текст, а не изображение, поэтому я не могу явно создать тег изображения, хотя могу сказать что-то вроде «ЕСЛИ img, то ...»
На самом деле все, что вам нужно сделать, это установить 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/[email protected]/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/[email protected]/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/[email protected]/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, которое было намного выше и шире, и оно по-прежнему выходит за пределы высоты.
Таким образом, левое изображение было 1800x824, и оно отлично подходит, правое изображение div, которое я тестировал, было 1024 x 942, и его ширина была ограничена, но нижняя часть вышла за пунктирную линию.
Может ли это быть из-за того, что у меня есть строки выше и ниже этого .row-middle?
В скрипке, если я делаю 1024x942, кажется, подходит
Попробуйте дать изображениям максимальную ширину: 100%; максимальная высота: 100%
@RobQuan Я попробовал max-height, и он работал в скрипке, но, возможно, я обнаружил проблему: изображения, проходящие через TinyMCE, имеют тег абзаца. Когда я помещаю тег <p> вокруг изображения, он прерывается для изображения 1024x942.
@RobQuan проверь эту скрипку. это использует максимальную высоту и имеет тег p вокруг изображения в настоящее время jsfiddle.net/vbuf0gwL/12
Попробуйте эту скрипку: jsfiddle.net/3rwxgf0v Установите автоматическое переполнение родительского тега p
изображения - это теги img или фоновые изображения?