Я хочу сделать кнопку внутри автоматически сгенерированного блока, чтобы изменить переполнение с hidden
на auto
.
Я создал рекурсивную адаптивную автоматическую сетку в Less, css вот так:
.container {
.container-fixed();
[class*='col-'] {
float: right;
width: 100%;
}
.make-grid(@container-xs);
.make-grid(@container-sm);
.make-grid(@container-md);
.make-grid(@container-lg);
}
.container-fixed(@gap: @grid-gap-width) {
margin-right: auto;
margin-left: auto;
padding-left: (@gap / 2);
padding-right: (@gap / 2);
}
.generate-columns(@container-width;
@number-cols;
@i: 1) when (@i =< @number-cols) {
.col-@{i} {
@single-width: @container-width / @number-cols - 0.5;
width: @i * @single-width; // 800px
}
.generate-columns(@container-width;
@number-cols;
@i + 1);
}
.make-grid(@container-width) {
@media(min-width: @container-width) {
width: @container-width;
.generate-columns(@container-width, @grid-c);
}
}
[class*='col-'] {
text-align: center;
overflow: hidden;
height: 250px;
background: @color-h;
display: block;
margin: 1px;
color: @color-text;
position: relative;
}
А теперь у меня длинный текст в HTML внутри одного из блоков, независимо от того, какой именно, например. col-9, где часть скрыта, потому что я использовал overflow:hidden;
.
Я хотел бы создать кнопку и щелкнуть по ней, чтобы изменить значение с overflow:hidden;
на overflow: auto;
.
У меня вопрос, как это сделать, чтобы перейти с hidden
на auto
, по щелчку и снова, чтобы вернуться к предыдущему состоянию при новом щелчке.
Я пробовал что-то подобное, но это не очень хорошо:
Меньше ->
[class*='col-'] {
text-align: center;
overflow: hidden;
height: 250px;
background: @color-h;
display: block;
margin: 1px;
color: @color-text;
position: relative;
.show {
overflow: auto;
}
}
JS ->
var content = document.getElementsByClassName("[class*='col-']");
var button = document.getElementbyID("show");
button.onclick = function() {
if (content.className == "show") {
content.className= "";
button.inerHTML = "Read";
} else {
content.className="show";
button.inerHTML = "Close";
}
};
html ->
<div class="col-9">
<a id="button-show">Read</a>
<script src="js/read.js"></script>
<p> some long text ........ </p>
</div>
Надеюсь, мне достаточно ясно, что я хочу сделать.