#html #css #css-position
#HTML #css #css-position
Вопрос:
Я пытаюсь абсолютно расположить div
элемент неизвестной высоты и ширины так, чтобы он частично находился в правой части моего экрана, отключив прокрутку вправо. Он работает просто отлично, когда я пытаюсь сделать это в левой части экрана. Но когда я пытаюсь использовать его в правой части экрана, у меня возникают проблемы.
Я попытался использовать overflow-x
для решения этой проблемы, но из-за этого все div
неожиданно исчезает.
.parent1 {
position: relative;
background-color: #ddd;
}
.child1 {
position: absolute;
width: 100px;
height: 100px;
background-color: #00ff00;
left: -50px;
top: 0;
}
.parent2 {
position: relative;
background-color: #ddd;
}
.child2 {
position: absolute;
width: 100px;
height: 100px;
background-color: #ff0000;
right: -50px;
top: 0;
}
.parent3 {
position: relative;
background-color: #ddd;
overflow-x: hidden;
}
.child3 {
position: absolute;
width: 100px;
height: 100px;
background-color: #ff0000;
right: -50px;
top: 0;
}
<div class="parent1">
<div class="child1">
This works on the left: half of the DIV is off the screen and un-scrollable; the other half is showing.
</div>
</div>
<div class="parent2">
<div class="child2">
But when I try it on the right, I'm able to scroll the screen right and see this whole DIV.
</div>
</div>
<div class="parent3">
<div class="child3">
I would expect overflow-x to solve this problem, but it hides the DIV entirely.
</div>
</div>
Как я могу сделать так, чтобы мой div
элемент располагался в правой части экрана, а прокрутка отключена?
Ответ №1:
Вам просто нужно применить overflow-x: hidden
body
вместо этого. Ваше решение скрыть overflow-x
для parent
будет работать, если сам родительский элемент можно прокручивать, иначе скрывать нечего.
body {
overflow-x: hidden;
}
.parent1 {
position: relative;
background-color: #ddd;
}
.child1 {
position: absolute;
width: 100px;
height: 100px;
background-color: #00ff00;
left: -50px;
top: 0;
}
.parent2 {
position: relative;
background-color: #ddd;
}
.child2 {
position: absolute;
width: 100px;
height: 100px;
background-color: #ff0000;
right: -50px;
top: 0;
}
.parent3 {
position: relative;
background-color: #ddd;
}
.child3 {
position: absolute;
width: 100px;
height: 100px;
background-color: #ff0000;
right: -50px;
top: 0;
}
<div class="parent1">
<div class="child1">
This works on the left: half of the DIV is off the screen and un-scrollable; the other half is showing.
</div>
</div>
<div class="parent2">
<div class="child2">
But when I try it on the right, I'm able to scroll the screen right and see this whole DIV.
</div>
</div>
<div class="parent3">
<div class="child3">
I would expect overflow-x to solve this problem, but it hides the DIV entirely.
</div>
</div>
Комментарии:
1. Рад, что я помог. Приветствия!
Ответ №2:
Измените стиль дочернего элемента 2 на position: fixed
.child2 {
position: fixed;
width: 100px;
height: 100px;
background-color: #ff0000;
right: -50px;
top: 0;
}
Комментарии:
1. Это фиксирует DIV в определенном месте на странице при прокрутке; Я не хочу этого делать.