Div 行内对齐
Div inline alignment
我正在开发一个简单的图像滑块,它有一个固定宽度的主容器,然后是另一个 div 用于控制滑块移动的容器。
它工作正常,但我想将 divs(与 slide
class)彼此对齐,溢出的 divs 应该移到一边,而不是"falling down".
我在容器上使用了 overflow:hidden
属性,我认为它应该可以工作,溢出的 div 应该在侧面,但由于某种原因它们不断掉落。
这是我的笔:
http://codepen.io/anon/pen/xOZVPL
他们jQuery代码与当前问题无关,所以忽略它。
如果有任何帮助,我将不胜感激!
您需要在具有 overflow: hidden
的元素上添加 white-space: nowrap
以防止其内容换行到下一行。
overflow: hidden
只会抑制容器外部分的显示,但不会阻止内容环绕。
$(document).ready(function() {
var index = Math.floor($(".slide").length / 2);
$('.slide').eq(index).addClass("focus");
$("#right").click(function() {
$('.slide').eq(index).removeClass("focus");
index--;
$('.slide').eq(index).addClass("focus");
$("#sliding").css({
left: $("#sliding").position().left - 144 + "px"
});
});
$("#left").click(function() {
$('.slide').eq(index).removeClass("focus");
index++;
$('.slide').eq(index).addClass("focus");
$("#sliding").css({
left: $("#sliding").position().left + 144 + "px"
});
});
});
* {
margin: 0;
padding: 0;
}
.slider {
text-align: center;
direction: rtl;
width: 1000px;
border: 2px solid;
height: 160px;
position: relative;
margin: 0 auto;
overflow: hidden;
white-space: nowrap;
}
#sliding {
position: relative;
margin: 0;
left: 0;
transition: all 0.5s linear;
}
.slide {
transition: all 0.6s ease;
border: 1px solid;
border-radius: 50%;
width: 120px;
height: 120px;
margin: 8px;
background-repeat: no-repeat;
background-position: 50%;
display: inline-block;
background: url(http://i.imgur.com/heDRFUE.jpg);
box-shadow: 0 0 8px rgba(0, 0, 0, .8);
-webkit-filter: brightness(50%);
-webkit-box-shadow: 0 0 8px rgba(0, 0, 0, .8);
-moz-box-shadow: 0 0 8px rgba(0, 0, 0, .8);
}
.focus {
-webkit-filter: brightness(110%);
transform: scale(1.2);
z-index: 10;
position: relative;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="slider">
<div id="sliding">
<div class="slide"></div>
<div class="slide"></div>
<div class="slide"></div>
<div class="slide"></div>
<div class="slide"></div>
<div class="slide"></div>
<div class="slide"></div>
<div class="slide"></div>
</div>
</div>
</br>
<center>
<button id="right">slide right</button>
</center>
<center>
<button id="left">slide left</button>
</center>
如果将 width 和 float 属性添加到 #sliding 会怎样?
#sliding
{
width: 1200px;
position: relative;
margin: 0;
float: left;
left: 0;
transition:all 0.5s linear;
}
您可能需要在这里和那里做一些额外的 css 更改。但这使圆圈在一条线上。
第二个选项是添加 white-space: nowrap; 到你的 .slider class
.slider {
white-space: nowrap;
text-align:center;
direction: rtl;
width:1000px;
border:2px solid;
height:160px;
position:relative;
margin:0 auto;
overflow:hidden;
}
在这里您可以找到更多关于 white-space 属性的信息:http://www.w3schools.com/cssref/pr_text_white-space.asp
我正在开发一个简单的图像滑块,它有一个固定宽度的主容器,然后是另一个 div 用于控制滑块移动的容器。
它工作正常,但我想将 divs(与 slide
class)彼此对齐,溢出的 divs 应该移到一边,而不是"falling down".
我在容器上使用了 overflow:hidden
属性,我认为它应该可以工作,溢出的 div 应该在侧面,但由于某种原因它们不断掉落。
这是我的笔:
http://codepen.io/anon/pen/xOZVPL
他们jQuery代码与当前问题无关,所以忽略它。 如果有任何帮助,我将不胜感激!
您需要在具有 overflow: hidden
的元素上添加 white-space: nowrap
以防止其内容换行到下一行。
overflow: hidden
只会抑制容器外部分的显示,但不会阻止内容环绕。
$(document).ready(function() {
var index = Math.floor($(".slide").length / 2);
$('.slide').eq(index).addClass("focus");
$("#right").click(function() {
$('.slide').eq(index).removeClass("focus");
index--;
$('.slide').eq(index).addClass("focus");
$("#sliding").css({
left: $("#sliding").position().left - 144 + "px"
});
});
$("#left").click(function() {
$('.slide').eq(index).removeClass("focus");
index++;
$('.slide').eq(index).addClass("focus");
$("#sliding").css({
left: $("#sliding").position().left + 144 + "px"
});
});
});
* {
margin: 0;
padding: 0;
}
.slider {
text-align: center;
direction: rtl;
width: 1000px;
border: 2px solid;
height: 160px;
position: relative;
margin: 0 auto;
overflow: hidden;
white-space: nowrap;
}
#sliding {
position: relative;
margin: 0;
left: 0;
transition: all 0.5s linear;
}
.slide {
transition: all 0.6s ease;
border: 1px solid;
border-radius: 50%;
width: 120px;
height: 120px;
margin: 8px;
background-repeat: no-repeat;
background-position: 50%;
display: inline-block;
background: url(http://i.imgur.com/heDRFUE.jpg);
box-shadow: 0 0 8px rgba(0, 0, 0, .8);
-webkit-filter: brightness(50%);
-webkit-box-shadow: 0 0 8px rgba(0, 0, 0, .8);
-moz-box-shadow: 0 0 8px rgba(0, 0, 0, .8);
}
.focus {
-webkit-filter: brightness(110%);
transform: scale(1.2);
z-index: 10;
position: relative;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="slider">
<div id="sliding">
<div class="slide"></div>
<div class="slide"></div>
<div class="slide"></div>
<div class="slide"></div>
<div class="slide"></div>
<div class="slide"></div>
<div class="slide"></div>
<div class="slide"></div>
</div>
</div>
</br>
<center>
<button id="right">slide right</button>
</center>
<center>
<button id="left">slide left</button>
</center>
如果将 width 和 float 属性添加到 #sliding 会怎样?
#sliding
{
width: 1200px;
position: relative;
margin: 0;
float: left;
left: 0;
transition:all 0.5s linear;
}
您可能需要在这里和那里做一些额外的 css 更改。但这使圆圈在一条线上。
第二个选项是添加 white-space: nowrap; 到你的 .slider class
.slider {
white-space: nowrap;
text-align:center;
direction: rtl;
width:1000px;
border:2px solid;
height:160px;
position:relative;
margin:0 auto;
overflow:hidden;
}
在这里您可以找到更多关于 white-space 属性的信息:http://www.w3schools.com/cssref/pr_text_white-space.asp