Я реализовал складной div, который расширяется при нажатии кнопки «Подробнее». Работает нормально. Но при расширении положение кнопки идет не так. Я хочу, чтобы кнопка находилась в том же положении, в котором кнопка находится на карте, когда карта не раскрыта.
Вот мой код
* {
font-family: verdana, sans-serif;
}
#more {
display: none;
}
.wrap-collabsible {
margin-bottom: 1.2rem 0;
margin-top: 40px;
}
input[type='checkbox'] {
display: none;
}
#myBtn {
display: block;
float: right;
font-weight: bold;
font-family: Verdana, sans-serif;
text-transform: uppercase;
text-align: center;
border: none;
padding: 1rem;
outline: none;
color: #A77B0E;
background: #FAE042;
cursor: pointer;
border-radius: 7px;
transition: all 0.25s ease-out;
}
#myBtn:hover {
color: #7C5A0B;
}
/* .lbl-toggle::before {
content: ' ';
display: inline-block;
border-top: 5px solid transparent;
border-bottom: 5px solid transparent;
border-left: 5px solid currentColor;
vertical-align: middle;
margin-right: .7rem;
transform: translateY(-2px);
transition: transform .2s ease-out;
} */
.toggle:checked+.lbl-toggle::before {
transform: rotate(90deg) translateX(-3px);
}
.collapsible-content {
max-height: 0px;
overflow: hidden;
transition: max-height .25s ease-in-out;
}
.toggle:checked+.lbl-toggle+.collapsible-content {
max-height: 350px;
}
.toggle:checked+.lbl-toggle {
border-bottom-right-radius: 0;
border-bottom-left-radius: 0;
}
.collapsible-content .content-inner {
background: rgba(250, 224, 66, .2);
border-bottom: 1px solid rgba(250, 224, 66, .45);
border-bottom-left-radius: 7px;
border-bottom-right-radius: 7px;
padding: .5rem 1rem;
}
.Add {
font-weight: bolder;
}
.wrapper {
padding: 0px 15px 0px 15px;
display: table-cell;
}
.box {
padding: 10px;
box-shadow: 5px 4px 9px 0px #d8d7d7;
border: 1px solid #eeee;
}
.inner-box {
width: 30%;
float: left;
display: table-cell;
}
.Text-box {
font-family: verdana, sans-serif;
margin-top: -16px;
}
.Add-text {
font-weight: bolder;
}
.text {
color: blue;
}
.img {
max-width: 88%;
height: auto;
}
#conditional-tag {
display: none;
}<div Class = "box">
<p class = "Add" id = "conditional-tag">No. 60, Jalan Pendamar Indah 1B, Taman Pendamar Indah, Pelabuhan Klang, Selangor </p>
<div class = "inner-box">
<img src = "house.jpg" class = "img">
</div>
<div class = "wrapper">
<p class = "Text-box">
<p class = "Add" id = "hideOnClick">No. 60, Jalan Pendamar Indah 1B, Taman Pendamar Indah, Pelabuhan Klang, Selangor</p>
<p class = "text">2 Storey Terrace House</p>
<p>Size : 1,860/1,302 sq.ft</p>
<p>Tenure : Freehold</p>
<p class = "Add-text">RM37,8000</p>
<span id = "dots">...</span>
<span id = "more">
<!--p style = "font-weight: bolder;">No. 60, Jalan Pendamar Indah 1B, Taman Pendamar Indah, Pelabuhan Klang, Selangor</p-->
<p class = "text">2 Storey Terrace House</p>
<p>Size : 1,860/1,302 sq.ft</p>
<p>Tenure : Freehold</p>
<p class = "Add-text">RM37,8000</p>
</span>
</p>
<button onclick = "myFunction()" id = "myBtn">Read more ></button>
<script>
function myFunction() {
var dots = document.getElementById("dots");
var moreText = document.getElementById("more");
var btnText = document.getElementById("myBtn");
document.getElementById('hideOnClick').innerHTML = "Hello to the world";
document.getElementById('conditional-tag').style.display = "block";
if (dots.style.display === "none") {
dots.style.display = "inline";
btnText.innerHTML = "Read more";
moreText.style.display = "none";
document.getElementById('hideOnClick').innerHTML = "No. 60, Jalan Pendamar Indah 1B, Taman Pendamar Indah, Pelabuhan Klang, Selangor";
document.getElementById('conditional-tag').style.display = "none";
} else {
dots.style.display = "none";
btnText.innerHTML = "Read less >";
moreText.style.display = "inline";
}
}
</script>
</div>
</div>Я хочу, чтобы кнопка находилась в одном и том же положении до и после свертывания карты. Как я могу это получить?
@misorude, можешь ли ты изменить мой код, чтобы он работал правильно?
Установите статическую ширину для вашего div.wrapper, например 30% или 250px



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Здесь я удалил float: right, добавил position:relative; и установил right:250px;.
* {
font-family: verdana, sans-serif;
}
#more {
display: none;
}
.wrap-collabsible {
margin-bottom: 1.2rem 0;
margin-top: 40px;
}
input[type='checkbox'] {
display: none;
}
#myBtn {
position: relative;
left: 250px;
display: block;
font-weight: bold;
font-family: Verdana, sans-serif;
text-transform: uppercase;
text-align: center;
border: none;
padding: 1rem;
outline: none;
color: #A77B0E;
background: #FAE042;
cursor: pointer;
border-radius: 7px;
transition: all 0.25s ease-out;
}
#myBtn:hover {
color: #7C5A0B;
}
/* .lbl-toggle::before {
content: ' ';
display: inline-block;
border-top: 5px solid transparent;
border-bottom: 5px solid transparent;
border-left: 5px solid currentColor;
vertical-align: middle;
margin-right: .7rem;
transform: translateY(-2px);
transition: transform .2s ease-out;
} */
.toggle:checked+.lbl-toggle::before {
transform: rotate(90deg) translateX(-3px);
}
.collapsible-content {
max-height: 0px;
overflow: hidden;
transition: max-height .25s ease-in-out;
}
.toggle:checked+.lbl-toggle+.collapsible-content {
max-height: 350px;
}
.toggle:checked+.lbl-toggle {
border-bottom-right-radius: 0;
border-bottom-left-radius: 0;
}
.collapsible-content .content-inner {
background: rgba(250, 224, 66, .2);
border-bottom: 1px solid rgba(250, 224, 66, .45);
border-bottom-left-radius: 7px;
border-bottom-right-radius: 7px;
padding: .5rem 1rem;
}
.Add {
font-weight: bolder;
}
.wrapper {
padding: 0px 15px 0px 15px;
display: table-cell;
}
.box {
padding: 10px;
box-shadow: 5px 4px 9px 0px #d8d7d7;
border: 1px solid #eeee;
}
.inner-box {
width: 30%;
float: left;
display: table-cell;
}
.Text-box {
font-family: verdana, sans-serif;
margin-top: -16px;
}
.Add-text {
font-weight: bolder;
}
.text {
color: blue;
}
.img {
max-width: 88%;
height: auto;
}
#conditional-tag {
display: none;
}<div Class = "box">
<p class = "Add" id = "conditional-tag">No. 60, Jalan Pendamar Indah 1B, Taman Pendamar Indah, Pelabuhan Klang, Selangor </p>
<div class = "inner-box">
<img src = "house.jpg" class = "img">
</div>
<div class = "wrapper">
<p class = "Text-box">
<p class = "Add" id = "hideOnClick">No. 60, Jalan Pendamar Indah 1B, Taman Pendamar Indah, Pelabuhan Klang, Selangor</p>
<p class = "text">2 Storey Terrace House</p>
<p>Size : 1,860/1,302 sq.ft</p>
<p>Tenure : Freehold</p>
<p class = "Add-text">RM37,8000</p>
<span id = "dots">...</span>
<span id = "more">
<!--p style = "font-weight: bolder;">No. 60, Jalan Pendamar Indah 1B, Taman Pendamar Indah, Pelabuhan Klang, Selangor</p-->
<p class = "text">2 Storey Terrace House</p>
<p>Size : 1,860/1,302 sq.ft</p>
<p>Tenure : Freehold</p>
<p class = "Add-text">RM37,8000</p>
</span>
</p>
<button onclick = "myFunction()" id = "myBtn">Read more ></button>
<script>
function myFunction() {
var dots = document.getElementById("dots");
var moreText = document.getElementById("more");
var btnText = document.getElementById("myBtn");
document.getElementById('hideOnClick').innerHTML = "Hello to the world";
document.getElementById('conditional-tag').style.display = "block";
if (dots.style.display === "none") {
dots.style.display = "inline";
btnText.innerHTML = "Read more";
moreText.style.display = "none";
document.getElementById('hideOnClick').innerHTML = "No. 60, Jalan Pendamar Indah 1B, Taman Pendamar Indah, Pelabuhan Klang, Selangor";
document.getElementById('conditional-tag').style.display = "none";
} else {
dots.style.display = "none";
btnText.innerHTML = "Read less >";
moreText.style.display = "inline";
}
}
</script>
</div>
</div>Вам просто нужно обернуть ваши div классами - внутренним блоком и оболочкой внутри контейнера div, и это решит вашу проблему. В настоящее время проблема заключается в том, что ваш div-оболочка не занимает 100% ширины, из-за чего вы видите, что кнопка «Меньше читать» расположена неправильно.
<div>
<div class = "inner-box">
<!-- your existing code here -->
</div>
<div class = "wrapper">
<!-- your existing code here -->
</div>
</div>
Скрипка для справки: http://jsfiddle.net/c1w8p7yj/
Я думаю, что основная причина этого в том, что вы наполовину неправильно используете типы отображения таблиц. В ваших .inner-box и .wrapper есть
display: table-cell, но родительский элемент является обычным блочным элементом, и, что еще хуже, элементpперед ними переключается междуnoneиblock, так что это даже не ячейка или строка таблицы. Создайте правильную таблицу, структура которой имеет смысл - таблица, строка таблицы, ячейки таблицы.