Положение абсолютно расположило DIV относительно (также абсолютно расположенный), порождают DIV?

Более важно быть последовательным, чем выбирать лучших.

Эти стили имеют разные преимущества и недостатки, но ни один из них не так плох, как их смешивание в проекте, даже в модуле компиляции или в функции.


Тернарный оператор является очевидным выбором для этого конкретного кода. Для простого одиночного утверждения if/else, которое не может быть выражено иначе, я бы предпочел правильно выделенный случай 3:

if (val % 2 == 1)
    output = “Number is odd”;
else
    output = “Number is even”;

Я понимаю мотивацию «всегда использовать скобки», но я лично я никогда не был укушен их пропуском (ОК, один раз. С макросом.)

Из вышеупомянутых стилей я бы выбрал (2). (4) было бы хорошо, если бы «правильно» отступ.
(1) Я бы приписал молодого разработчика, который, надеюсь, вырастет из «компактного кода», или того, кто не может позволить себе достойный монитор. Тем не менее, я бы пошел с этим, если бы это был местный стиль.

1
задан Ropstah 17 June 2009 в 21:26
поделиться

3 ответа

Абсолютно позиционированный элемент позиционируется относительно краев его ближайшего предка, который не позиционируется (то есть не position: static).

Поскольку родительский элемент равно position: absolute, дочерний элемент будет позиционирован относительно его краев.

Итак, вы, похоже, спрашиваете, как добиться уже имеющегося поведения. Комментарий в вашем первом примере кажется неверным.

1
ответ дан 3 September 2019 в 01:23
поделиться

Вы можете спросить себя, действительно ли вам нужно использовать несколько вложенных элементов с абсолютным позиционированием.

В противном случае, возможно, лучше всего будет использовать решение-оболочку.

0
ответ дан 3 September 2019 в 01:23
поделиться

Если вы уже полностью позиционируете один div, не можете ли вы просто сложить два смещения вместе для дочернего элемента? например, для #one должно быть 10,10 и #two 10,10 относительно #one,

#one {
    position: absolute;
    left: 10px;
    top: 10px;
}

#two {
    position: absolute;
    left: 20px;
    top: 20px;
}

Или это что-то более интересное, например, #one фиксируется в верхнем левом углу и #two - в правом нижнем углу #one , в каком случае основная математика не работает? В этом случае, вероятно, потребуется дополнительный div.

Или я просто устал и что-то упускаю?

1
ответ дан 3 September 2019 в 01:23
поделиться