Имеет ли opacity: 0 тот же эффект, что и видимость: скрыто

boost :: optional

#include <boost/optional.hpp>

int main() {
    boost::optional<int> x;
    x = boost::in_place(3);
}

Мы также можем показать (через код), что это создание объекта на месте, сделав Foo наследованием от boost::noncopyable:

#include <boost/optional.hpp>
#include <boost/noncopyable.hpp>

class Foo : boost::noncopyable {
    public:
        Foo(int one, int two) {}
};


int main() {
    boost::optional<Foo> x;
    x = boost::in_place(3, 4);
}

std :: optional (в конце концов ...)

В конце концов мы получим доступ к std::optional. Этот тип будет реализовывать метод emplace(), который также будет реализовывать конструкцию на месте.

#include <optional>

int main() {
    std::optional<int> x;
    x.emplace(3);
}

boost :: optional (soon ...)

В версии 1.56 .0, boost::optional также будет реализовывать метод emplace(), о котором я говорил для std :: optional. Итак, давайте посмотрим, что:

#include <boost/optional.hpp>

int main() {
    boost::optional<int> x;
    x.emplace(3);
}
119
задан Community 23 May 2017 в 12:34
поделиться

6 ответов

Вот компиляция проверенной информации из различных ответов.

Каждое из этих свойств CSS на самом деле уникально. В дополнение к рендерингу элемента, не видимого, они имеют следующий дополнительный эффект:

  1. Коллапсы место, которое элемент обычно занимал бы
  2. , Отвечает события (например, нажмите, нажатие клавиши)
  3. Участвует в taborder
                     collapse events taborder
opacity: 0              No     Yes     Yes
visibility: hidden      No     No      No
visibility: collapse    *      No      No
display: none          Yes     No      No

* Yes inside a table element, otherwise No.
244
ответ дан Chris Noe 23 May 2017 в 22:34
поделиться

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

0
ответ дан Zack The Human 23 May 2017 в 22:34
поделиться

Я не совсем уверен в этом, но я думаю, что программы для чтения с экрана не читают вещи, которые установлены на скрытую видимость, но они могут считать вещи независимо от своей непрозрачности.

Это - единственная разница, о которой я могу думать.

3
ответ дан philnash 23 May 2017 в 22:34
поделиться

Im, не уверенный полностью, но это - то, как я действительно пересекаю прозрачность браузера:

opacity: 0.6;
-moz-opacity: 0.6;
filter: alpha(opacity=60);

объекты с Visibility:hidden все еще имеют форму, они просто не видимы. нулевые элементы непрозрачности могут все еще быть нажаты и реагировать на другие события.

4
ответ дан Andrew Bullock 23 May 2017 в 22:34
поделиться

То, что говорит Phil, верно.

IE поддерживает непрозрачность хотя:

filter:alpha(opacity=0);
0
ответ дан Diodeus - James MacFarlane 23 May 2017 в 22:34
поделиться

Нет.

Элементы с непрозрачностью создают новый контекст стека.

Кроме того, спецификация CSS не определяет это, но элементы с непрозрачностью : 0 являются кликабельными, а элементы с видимостью : скрытые - нет.

12
ответ дан 24 November 2019 в 01:47
поделиться