last day (14 days later) » 

8:11 AM
@Dimon А зачем вам чат для такого простого случая?
 
он не простой
на примере будет понятней
 
Какого ещё примера?
 
секунду
<!DOCTYPE HTML>
<html>
<head>
<style>

#asd{
width:300px;
height:200px;
background-color:blue;

position:absolute;
left:0px;
right:0px;
top:0px;
bottom:100px;
/*margin:auto;*/
margin-top:auto;
margin-bottom:auto;
margin-left:auto;
margin-right:auto;
}



</style>
</head>
<body>
<div id="container">
<div id="asd">
</div>
</div>
</body>
</html>
 
Ну хорошо, есть такой пример, что вы от меня хотите?
 
так нагляднее
 
8:17 AM
Ну хорошо
 
вопрос в том, что, если я уберу bottom, то перечтает работать выравнивание по высоте
 
По поводу стандарта если 'top', 'height', and 'bottom' не auto (по умолчанию значение), то margin-top, margin-bottom дают выравнивание
two margins get equal values
Что непонятного?
 
если я убираю bottom, то он становится авто?
 
Да
значение по умолчанию, значит, что вы можете не указывать.
default: auto
 
получается, что если я ЗАДАЛ 'top', 'height', and 'bottom', то margin-top, margin-bottom рассчитаются так, что будет выравнивание по высоте
если я какое-то из трех свойств 'top', 'height', and 'bottom' не задал руками, то выравнивание не отработает
правильно я понял?
у меня проблемы с пониманием auto
как оно рассчитывается?
есть какая-то общая идея?
или для каждого свойства надо лезь в стандарт и читать, как работает авто для данного свойства?
 
8:25 AM
Да, для каждого свойства надо лезь в стандарт и читать, как работает авто для данного свойства
 
я тоже из Харькова)
спасибо
 
Но ещё лучше использовать другие реценты для выравнивания
Более изящные
 
джаваскриптом все это можно сделать
 
Вот это точно идея так себе
 
а как изящнее сделать?
через table-cell и vertical-align?
 
8:28 AM
А вам надо абсолютно позиционируемый элемент или нет?
 
это не принципиально
 
Как вариант через table-cell, если вам надо поддерживать старые браузеры.
 
можно и без позиционирования
 
Совет №1: используйте абсолют, только когда это реально надо.
Модальные окна, выпадающие списки, более сложные, чем стандартный select и т.д.
Или для рецептов вроде текстовое поле с картинкой.
 
вообще, насколько я понял, в данном примере когда я задаю top и bottom + height, то получается КОНФЛИКТ
то, есть высота как бы от низа до верха вьюпорта + задаю фиксированную высоту
 
8:33 AM
Можете для начала отметить мой ответ как принятый если он вам помог?
 
отмечу. я вам плюс поставил
отметил
 
Так вот без абсолюта если это
1. Именно элементы.
контейнеру display: flex; ребёнку
если верт. и гор. — margin: auto;
если верт. — margin-top: auto; margin-bottom: auto;
если гор. — margin-left: auto; margin-right: auto;
 
с display: flex я еще не знаком
 
2. Если надо просто текст (однострочный):
text-align: center;
line-height = height блока или если высота не фиксированная то просто добавить padding-top = padding-bottom
 
давайте вернемся к вопросу про КОНФЛИКТ
 
8:37 AM
А зачем?
Я вам предлагаю верстать по-другому
 
можно двумя путями решить конфликт - если нет margin-top и margin-left авто, то, насколько я понимаю, bottom просто игнорируется
потому что description стоит в ltr
 
3. Если абсолютно позиционируемые элементы:
верт:
top: 50%;
transform: translateY(-50%);
гор:
left: 50%;
transform: translateX(-50%)
верт и гор:
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
 
второй вариант решения конфликта с высотой - это задать margin-top и margin-left авто. при этом не будет отбрасываться bottom.
 
Я вам предложил варианты
где не надо задавать высоту
 
меня интересует именно этот вопрос. про конфликты
как они решаются
 
8:40 AM
Так и задайте вопрос на SO
Я вам и так информации немало дал
 
SO?
 
StackOverflow
 
ладно тогда
 
А вам видимо оно не надо
И вы не цените моё потраченное время
 
меня интересует вопрос, как конфликт решить
 
8:41 AM
Я вам говорю, что это неудобно
 
как они решаются
 
А вы продолжаете
 
при чем тут это
я хочу понять, как это работает
а не как удобно
мне удобно джаваскриптом все делать
но я хочу разобраться, как это кссом делать
 
Ну так и делайте JavaScript
 
и как ксс работает
 
8:43 AM
CSS я вам рассказал
капец как содержательно
Механику для всех случаев в спеке покрыть — это очень долго
 
меня интересовал вопрос, как конфликты решаются при абсолютном позиционировании
 
Но если хотите можете исследовать все страницы (по-моему их 800 с чем-то).
 
это перебор
 
Какие конфилкты?
кого с чем?
Я тоже думаю, что перебор
 
если я задаю топ и боттом, то я указываю высоту
блока
если если я еще и видз напишу, то это будет ЯВНОЕ указание
идет конфликт по высоте
расстояние между топ и боттом одно, а руками указана высота совсем другая
 
8:46 AM
Вы явно указываете высоту и ширину — это я понял
Конфликт с кем идёт по высоте, я не понимаю
 
то, есть я говорю "блок такой высоты, что топ равен столько-то, а боттом равен столько-то"
 
а руками указана высота совсем другая?
 
а потом говорю "высота хайт равна столько-то пикселей"
 
это что значит?
 
да
это и есть конфликт, о котором я написал
 
8:48 AM
Не понимаю
Если вы допустим указали 100px, то высота чему равна?
 
если я в примере выше уберу height:200px; , то по высоте блок растянется по всему вьюпорту
потому что указано топ и боттом
 
Ну правильно и логично
 
указание топ и боттом - это указание высоты
 
И что?
 
а потом я еще раз указываю высоту через хайт
два раза указал двумя способами
браузер должен понимать, что делать - какую высоту брать
меня интересует механизм разрешения конфликта в данном случае
 
8:51 AM
Браузер должен работать по спеке
 
это понятно
может быть вы знаете этот механизм, поэтому и спросил
 
Если не указываете высоту, и указываете top и bottom, то блок растянется между top и bottom.
 
это я знаю
 
А в чём вопрос?
Я здесь не вижу никаких "конфликтов", а вижу поведение по спецификации, вот и всё.
CSS1, CSS2.1 полны странностями, CSS3 в этом отношении мне больше нравится.
Вы здесь?
 
да
я вопрос в пейнте рисую
наглядно
 
8:58 AM
Хорошо, но вы понимаете, что в ответ я, с большой вероятностью, приведу вам спеку.
 
да
 
Может вы сами найдёте нужный фрагмент?
Или вы видите какой-то нестандартный случай?
 
ладно. не буду вас задерживать
 
Ну хотя давайте
Просто мне не хочется растягивать дискуссии часа на 3
Такая спека
До категории "интуитивно понятна" ей далеко
 
я понимаю, что времени нет
height:200px;
top:200px;
bottom:200px;
высота вьюпорта 804 пикселя
то есть, bottom:200px; ТУПО ИГНОРИРУЕТСЯ
хотя и задано
это конфликт по высоте. он решился так: браузер подвинул на 200 пикселей вниз блок, потом задал ширину 200, а боттом отбросил
хотя он и отображается как 200 пикселей
приоритет - сверху вниз. то есть, топ в большем приоритете, чем боттом. поэтому боттом было отброшено
вот эта схема меня и интересует
 
9:21 AM
еще вопрос есть. если я не задаю какое-то свойство ксс, то берется дефолтное значение этого свойства. та же величина шрифта, например. какие свойства ксс по дефолту в авто? насколько знаю, width:auto - блок всегда по ширине растягивается
 
9:38 AM
ладно. мне пора идти. еще раз спасибо
 
По поводу картинки не знаю что прокомментировать
Да, такое поведение, как вы видите.
Какие свойста по default auto
сходу не скажу
просто любое интересующее свойство берёте, гуглите и смотрите default
 

last day (14 days later) »