Более важно быть последовательным, чем выбирать лучших.
Эти стили имеют разные преимущества и недостатки, но ни один из них не так плох, как их смешивание в проекте, даже в модуле компиляции или в функции.
Тернарный оператор является очевидным выбором для этого конкретного кода. Для простого одиночного утверждения if/else
, которое не может быть выражено иначе, я бы предпочел правильно выделенный случай 3:
if (val % 2 == 1)
output = “Number is odd”;
else
output = “Number is even”;
Я понимаю мотивацию «всегда использовать скобки», но я лично я никогда не был укушен их пропуском (ОК, один раз. С макросом.)
Из вышеупомянутых стилей я бы выбрал (2). (4) было бы хорошо, если бы «правильно» отступ.
(1) Я бы приписал молодого разработчика, который, надеюсь, вырастет из «компактного кода», или того, кто не может позволить себе достойный монитор. Тем не менее, я бы пошел с этим, если бы это был местный стиль.
Абсолютно позиционированный элемент позиционируется относительно краев его ближайшего предка, который не позиционируется (то есть не position: static).
Поскольку родительский элемент равно position: absolute, дочерний элемент будет позиционирован относительно его краев.
Итак, вы, похоже, спрашиваете, как добиться уже имеющегося поведения. Комментарий в вашем первом примере кажется неверным.
Вы можете спросить себя, действительно ли вам нужно использовать несколько вложенных элементов с абсолютным позиционированием.
В противном случае, возможно, лучше всего будет использовать решение-оболочку.
Если вы уже полностью позиционируете один 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.
Или я просто устал и что-то упускаю?