我有一个简单的HTML“ Load More”和“ Load Less”代码。基本上,它显示了几个块,然后您单击“加载更多”,所有这些都显示了。现在我对按钮的按下距离有疑问。我希望按钮位于第一组li的正下方,而不是下方的300px。
这是我的jsfiddle链接:
index.html
<div class="load-more-container">
<input type="checkbox" id="load-more" />
<ul>
<li>Yeet</li>
<li style="width: 305px; margin-left: 22px;">Yeet</li>
<li style="margin-left: 22px;">Yeet</li>
<li>Yeet</li>
<li style="width: 305px; margin-left: 22px;">Yeet</li>
<li style="margin-left: 22px;">Yeet</li>
<li>Yeet</li>
<li style="width: 305px; margin-left: 22px;">Yeet</li>
<li style="margin-left: 22px;">Yeet</li>
<li>Yeet</li>
<li style="width: 305px; margin-left: 22px;">Yeet</li>
<li style="margin-left: 22px;">Yeet</li>
<li>Yeet</li>
<li style="width: 305px; margin-left: 22px;">Yeet</li>
<li style="margin-left: 22px;">Yeet</li>
<li>Yeet</li>
<li style="width: 305px; margin-left: 22px;">Yeet</li>
<li style="margin-left: 22px;">Yeet</li>
<li>Yeet</li>
<li style="width: 305px; margin-left: 22px;">Yeet</li>
<li style="margin-left: 22px;">Yeet</li>
<li>Yeet</li>
<li style="width: 305px; margin-left: 22px;">Yeet</li>
<li style="margin-left: 22px;">Yeet</li>
<li>Yeet</li>
<li style="width: 305px; margin-left: 22px;">Yeet</li>
<li style="margin-left: 22px;">Yeet</li>
<li>Yeet</li>
<li style="width: 305px; margin-left: 22px;">Yeet</li>
<li style="margin-left: 22px;">Yeet</li>
<li>Yeet</li>
<li style="width: 305px; margin-left: 22px;">Yeet</li>
<li style="margin-left: 22px;">Yeet</li>
<li>Yeet</li>
<li style="width: 305px; margin-left: 22px;">Yeet</li>
<li style="margin-left: 22px;">Yeet</li>
</ul>
<label class="load-more-btn" for="load-more">
<span class="unloaded"><p class="button_more">
Load More
</p></span>
<span class="loaded"><p class="button_less">
Load Less
</p></span>
</label>
</div>
</div>
loadmore.css
*, *:before, *:after {
box-sizing: border-box;
}
.load-more-container {
width: 959px;
margin: auto;
position: relative;
}
.load-more-container ul {
list-style-type: none;
padding: 0;
}
.load-more-container ul:after {
content: "";
display: table;
clear: both;
}
.load-more-container ul li {
width: 305px;
background: #6d11d0;
border: 3px solid black;
margin-bottom: 22px;
border-radius: 10px;
height: 100px;
float: left;
border-radius: 10px;
}
.load-more-container ul li:nth-child(1n + 4) {
max-height: 0;
border-radius: 10px;
opacity: 0;
transition: 0.1s ease-in;
}
.load-more-container .load-more-btn {
text-align: center;
}
.load-more-container .load-more-btn .loaded {
display: none;
}
.load-more-container #load-more {
display: none;
}
.load-more-container #load-more:checked ~ ul li:nth-child(1n + 4) {
max-height: 999px;
opacity: 1;
transition: 0.2s ease-in;
}
.load-more-container #load-more:checked ~ .load-more-btn .loaded {
display: block;
}
.load-more-container #load-more:checked ~ .load-more-btn .unloaded {
display: none;
}
.load-more-container .ld{
width: 200px;
border: 3px solid black;
border-radius: 10px;
margin-left: 380px;
margin-bottom: 22px;
}
.load-more-container .uld{
width: 200px;
border: 3px solid black;
border-radius: 10px;
margin-bottom: 22px;
}
.margin{
margin-top: 37px;
}
.button_more{
background-color: aqua;
padding: 32px 16px;
width: 100px;
margin: auto;
}
答案 0 :(得分:0)
对CSS进行了以下更改,以检查和取消选中输入,然后再次检查。让我知道您是否仍然面临问题。
.load-more-container #load-more:checked ~ ul li:nth-child(1n + 4) {
max-height: 999px;
opacity: 1;
transition: 0.2s ease-in;
border-width: 3px;
margin-bottom: 22px;
}
.load-more-container ul li:nth-child(1n + 4) {
max-height: 0;
border-radius: 10px;
opacity: 0;
transition: 0.1s ease-in;
border-width: 0;
margin: 0;
}
答案 1 :(得分:0)
将以下规则添加到您的CSS代码中:
.load-more-container #load-more:not(:checked) ~ ul li:nth-child(1n + 4) {
border: 0;
margin: 0;
}
答案 2 :(得分:0)
您不应该使用opacity
CSS,因为它不可见,但是它在DOM中使用其元素大小。尝试使用display
属性。浏览JSFiddle观看直播。
HTML代码-
<div class="load-more-container">
<input type="checkbox" id="load-more" />
<ul>
<li>Yeet</li>
<li style="width: 305px; margin-left: 22px;">Yeet</li>
<li style="margin-left: 22px;">Yeet</li>
<li>Yeet</li>
<li style="width: 305px; margin-left: 22px;">Yeet</li>
<li style="margin-left: 22px;">Yeet</li>
<li>Yeet</li>
<li style="width: 305px; margin-left: 22px;">Yeet</li>
<li style="margin-left: 22px;">Yeet</li>
<li>Yeet</li>
<li style="width: 305px; margin-left: 22px;">Yeet</li>
<li style="margin-left: 22px;">Yeet</li>
<li>Yeet</li>
<li style="width: 305px; margin-left: 22px;">Yeet</li>
<li style="margin-left: 22px;">Yeet</li>
<li>Yeet</li>
<li style="width: 305px; margin-left: 22px;">Yeet</li>
<li style="margin-left: 22px;">Yeet</li>
<li>Yeet</li>
<li style="width: 305px; margin-left: 22px;">Yeet</li>
<li style="margin-left: 22px;">Yeet</li>
<li>Yeet</li>
<li style="width: 305px; margin-left: 22px;">Yeet</li>
<li style="margin-left: 22px;">Yeet</li>
<li>Yeet</li>
<li style="width: 305px; margin-left: 22px;">Yeet</li>
<li style="margin-left: 22px;">Yeet</li>
<li>Yeet</li>
<li style="width: 305px; margin-left: 22px;">Yeet</li>
<li style="margin-left: 22px;">Yeet</li>
<li>Yeet</li>
<li style="width: 305px; margin-left: 22px;">Yeet</li>
<li style="margin-left: 22px;">Yeet</li>
<li>Yeet</li>
<li style="width: 305px; margin-left: 22px;">Yeet</li>
<li style="margin-left: 22px;">Yeet</li>
</ul>
<label class="load-more-btn" for="load-more">
<span class="unloaded"><p class="button_more">
Load More
</p></span>
<span class="loaded"><p class="button_less">
Load Less
</p></span>
</label>
</div>
CSS代码-
*,
*:before,
*:after {
box-sizing: border-box;
}
.load-more-container {
width: 959px;
margin: auto;
position: relative;
}
.load-more-container ul {
list-style-type: none;
padding: 0;
}
.load-more-container ul:after {
content: "";
display: table;
clear: both;
}
.load-more-container ul li {
width: 305px;
background: #6d11d0;
border: 3px solid black;
margin-bottom: 22px;
border-radius: 10px;
height: 100px;
float: left;
border-radius: 10px;
}
.load-more-container ul li:nth-child(1n + 4) {
max-height: 0;
border-radius: 10px;
/* opacity: 0; */
transition: 0.1s ease-in;
display: none;
}
.load-more-container .load-more-btn {
text-align: center;
}
.load-more-container .load-more-btn .loaded {
display: none;
}
.load-more-container #load-more {
display: none;
}
.load-more-container #load-more:checked~ul li:nth-child(1n + 4) {
max-height: 999px;
/* opacity: 1; */
transition: 0.2s ease-in;
display: block;
}
.load-more-container #load-more:checked~.load-more-btn .loaded {
display: block;
}
.load-more-container #load-more:checked~.load-more-btn .unloaded {
display: none;
}
.load-more-container .ld {
width: 200px;
border: 3px solid black;
border-radius: 10px;
margin-left: 380px;
margin-bottom: 22px;
}
.load-more-container .uld {
width: 200px;
border: 3px solid black;
border-radius: 10px;
margin-bottom: 22px;
}
.margin {
margin-top: 37px;
}
.button_more, .button_less {
background-color: aqua;
padding: 32px 16px;
}