Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Динамические отступы в блоке (https://javascript.ru/forum/dom-window/75917-dinamicheskie-otstupy-v-bloke.html)

oslayer 16.11.2018 16:06

Динамические отступы в блоке
 
Есть конструкция
<style>.content {width:100%}
<div class="content">содержимое</div>


Как сделать такое? Логику понимаю, в js знания стремятся к нулю :(

Логика работы
Внутри блока content есть содержимое для которого необходимо установить равные отступы слева и справа в зависимости от ширины окна браузера

Событие должно работать при изменении размеров окна. Window.resize

Алгоритм выравнивания такой
1.Получаем ширину Content (вероятно InnerWidth)
2.Получаем ширину окна(Window)
3.Переменная1 = Ширина окна - Ширина Content
4.Переменная2 = Переменная1 / 2
5.Присваиваем блоку Content значения CSS
Padding-left:Переменная2;Padding-right:Переменная2;

j0hnik 16.11.2018 16:15

для этого достаточно css

oslayer 16.11.2018 16:20

Цитата:

Сообщение от j0hnik (Сообщение 498781)
для этого достаточно css

Можно пример на CSS в таком случае? я не знаю валидного способа это сделать, тем более в динамике

j0hnik 16.11.2018 16:26

<style>
	.content{
		margin: 0 20%;
		text-align: center;
		border: 1px solid red;
	}
</style>

<div class="content">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sed, voluptas, repellendus. 
Minima repellat deserunt veritatis, provident a illo labore numquam nam nesciunt cumque. 
Perspiciatis nihil, repudiandae blanditiis molestias consequatur quia.500</div>

j0hnik 16.11.2018 16:27

Цитата:

Сообщение от oslayer
тем более в динамике

да-да, css так и работает

oslayer 16.11.2018 17:00

Это не то что нужно совершенно. т.к. при разных разрешениях экрана 20% будут разные, а содержимое блока Content грубо говоря статическую ширину.
т.е. ну к примеру ширина экрана 1000,Content занимает постоянно 800.
Отступы ставим в процентах, их нужно в процентах, т.к. 1000 динамическая величина. Соотвественно padding:10%, но как только ширина экрана увеличивается или уменьшается то padding 10% становится некорректным значением. Вот для этого и нужен описаный мной алгоритм. Вы можете дать пример на JS?

j0hnik 16.11.2018 17:05

<style>
	.content{
		width: 800px;
		margin: 0 auto;
		text-align: center;
		border: 1px solid red;
	}
</style>

<div class="content">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sed, voluptas, repellendus. 
Minima repellat deserunt veritatis, provident a illo labore numquam nam nesciunt cumque. 
Perspiciatis nihil, repudiandae blanditiis molestias consequatur quia.500</div>

вам хоть базовые знания по css надо приобрести

oslayer 16.11.2018 17:15

Не работает text-align, не с Important и вообще никак. bootstrap justify тоже не работает.. Вы можете показать пример на JS? Если нет, то вы лично врядли сможете мне помочь

BSwan 22.11.2018 19:11

text-align - это только для текста, а не для блока content
margin: 0 auto; - ставит Ваш блок в середину окна.
Вот пример от j0hnik он рабочий.

https://jsfiddle.net/bsawn/ujota35k/


Часовой пояс GMT +3, время: 02:56.