Pull to refresh

Comments 34

А я на интервью проверяю умение думать.

А как вы верифицируете свой метод отбора?
> Каким способом я могу установить непрозрачность для элемента button, у которого есть атрибут disabled?

Втупил на первом же вопросе «Зачем ее устанавливать, она и так непрозрачная».
Заглянул под спойлер, «а ёп это про селекторы и ПРОЗРАЧНОСТЬ» )

Ну строго говоря, прозрачность это transparency, а opacity — у нас нет прямого перевода, (хорошо, «помутнение», но так никто не говорит), хотя и «непрозрачность» звучит сбивающе с толку

opacity = оптическая плотность. величина обратная прозрачности
Полупрозрачность же. Какая в пень «непрозрачность»?
Автор, поучитесь сперва вопросы задавать!
Вместо:
Каким способом я могу установить непрозрачность для элемента button, у которого есть атрибут disabled?

вопрос должен звучать так:
Напишите селектор для всех элементов button c установленным атрибутом disabled

А еще называть вещи своими (или устоявшимися) именами, а не придуманными.
«Непрозрачность» — нет такого понятия. Да и тупое оно. Особенно для того для чего вы их применяете… для ПОЛУПРОЗРАЧНЫХ элементов. НЕ в совокупности с «прозрачность» дает opacity: 1;

А вообще есть еще вопросы к компетентности
В8. Представьте, что есть таблица с данными. Назовите способ добавления непрозрачности для всех строк, кроме той, на которую навел пользователь.

Ответ

Нужно использовать сложный селектор. Первая часть tbody:hover нужна, чтобы установить opacity для всех строк. Вторая часть чтобы opacity не применялось на наведенную строку, нужно использовать :not(:hover).

tbody:hover tr:not(:hover) {
opacity: 0.24;
}


> Первая часть tbody:hover нужна, чтобы установить opacity для всех строк.
Nope. Она просто применяет стили тогда когда пользователь навел мышь на tbody. В вопросе этого не было, а значит «Первая часть tbody:hover НЕ нужна»
Именно «непрозрачностью» и называется opacity в обиходе — для противопоставления прозрачности transparency. Практически все так говорят. Да, корявоенькое слово, но ничего лучшего и более устоявшегося пока никто не придумал.
«Полупрозрачность» некорректно (см. анекдот про большую половину класса). Бирмановскую «опасность» вообще нужно законодательно запретить, потому что с первого раза не понимает даже человек, который в курсе этого изобретения.
Практически все так говорят

Вероятно это зависит от региона. Я первый раз слышу такое слово в этом контексте. В моём кругу общения все используют "прозрачность" или "опасити" :D
Слово непрозрачность я, кажется, впервые увидел, когда перевёл слово opaque.

Скорее от контекста. Я переформулирую: в реальности могут говорить и «прозрачность», и «полупрозрачность», если речь идет о прозрачности вообще — а детали реализации либо не важны, либо собеседник уже знает о чём речь. Но если важно донести, что речь именно о слове opacity, а не каком-то похожем по смыслу (а это бывает сравнительно редко) — вот тогда «непрозрачность» или действительно калька «опасити».

B8 я бы написал так, без :not():


tbody:hover tr {
  opacity: 0.24;
}

tbody:hover tr:hover {
  opacity: 1;
}
Смысл использования not() в том, чтобы было 1 CSS-правило, а не два

Я так понял что в задаче имеется в виду, чтобы в обычном состоянии все строки были непрозрачными, а лишь при нахождении курсора в таблице остальные строки были непрозрачными.

< Я так понял
Главная проблема «решающих». Не надо ничего «додумывать». Есть задача, надо решить )

Я не особо привык к :not() хотя конечно уже давно пора, браузеры которые его не поддерживают давно умерли.
Но тут ещё вопрос в производительности, интересно какие правила менее нагружают отрисовку в браузере, у меня есть ощущение что лучше написать два правила.

Никакой нет разницы при отрисовке.
Я о примерно таком же решении подумал когда читал вопрос.
Но когда увидел «сложные селекторы» и не внятное их описание, насторожился )

ЗЫ. Хотя о :not знаю конечно, но применять обычно не приходилось (иначе бы запомнилось)
Хорошие вопросы, спасибо. Я ни разу еще не отбирал кандидатов по признаку знания CSS, но если понадобится, возьму на вооружение.
Хорошие вопросы. В В18 ошибка. Margin'ы, конечно, схлопываются, но в примере он только один, поэтому child будет на 10px ниже, чем верх parent'а.
И opacity, конечно, устанавливает прозрачность, а не непрозрачность. Хотя бы потому что без opacity все элементы как раз не прозрачны.
Если вы построите границы или зададите бэкграунд колор, совсем наглядно будет, что от верха экрана child безусловно оттолкнется, вот только он все еще будет прилеплен к верху родительского контейнера. Так что в постановке вопроса автора — все верно, марджины схлопнутся и выдадут общий отступ от верхней границы родительского контейнера.
Меа кульпа, если бордер прописать, так и есть. Попробуйте бе без бордеров — и сразу выходит как в условии. codepen.io/anna-malickaq/pen/XWmeJyJ можно закомменченное раскомментить и сразу да, едет. но без заданных границ — нет.
jsfiddle.net/xcs9b4r6 Так еще веселее. Даже 1px паддинга достаточно, чтобы child отталкивался от parent, а не отталкивал его от body. Вопрос: что padding и border делают с parent такого, что меняет рассчет margin?
Очень хотелось бы услышать объяснение автора поста, а то он пока только опечатки в личке править силён, а я ненастоящий сварщик, а сильно начинашечный.
Предположу, что потому что не происходит контакта марджина родителя (даже нулевого) и чайлда, если есть хоть какой-то паддинг, а значит нет схлопывания марджинов.
Если быть точнее, то в В18 происходит выпадание внешнего отступа.
Если внутри родительского блока расположить блок и задать ему отступ сверху, то внутренний блок прижмётся к верхнему краю родительского, а у родительского элемента появится отступ сверху. То есть верхний отступ внутреннего элемента «выпадает» из родительского элемента
Чтобы избавиться от эффекта выпадания, можно задать родительскому элементу внутренний отступ (паддинг) сверху или добавить рамку сверху
Что собственно и происходит в примере у Tocka, из-за паддинга у родителя дочерний элемент отступает на 50px
Они не дают марджинам схлопываться, разделяя их. Т.е. у тебя дочерний элемент уже не «касается» верха родительского элемента.
border и padding влияют на блочную модель элемента. В частности влияют на её размеры, внешние или внутренние, в зависимости от типа этой модели. Если вместо border, родителю установить outline или box-shadow, которые не влияют на размеры элемента, тогда ты увидишь как схлапывается margin и родитель вместе с дочерним элементов отталкиваются от границы внешнего блока.
В16. Строчные элементы располагаются в одну строку. Правда или ложь?

Ложь. Строчные элементы располагаются в строке и занимают столько строк, сколько потребуется. В одну строку они располагаются только в двух случаях:
  1. Когда строчных элементов недостаточно для более чем одной строки
  2. Когда у родителя стоит white-space: nowrap

«Непрозрачность»)
Кандидат придёт и будет думать что это с ним что-то не так, а тут просто фразы у интервьюера с отсебятиной

Sign up to leave a comment.

Articles