Можно ли присвоить свойство opacity свойству background только div, а не текст на нем?
Я пробовал:
background: #CCC;
opacity: 0.6;
но это не изменяет непрозрачность.
Можно ли присвоить свойство opacity свойству background только div, а не текст на нем?
Я пробовал:
background: #CCC;
opacity: 0.6;
но это не изменяет непрозрачность.
Похоже, вы хотите использовать прозрачный фон, и в этом случае вы можете попробовать использовать функцию rgba():
rgba()Цвета могут быть определены в модели Red-green-blue-alpha (RGBa) с использованием функциональной нотации
rgba(). RGBa расширяет цветную модель RGB, чтобы включить альфа-канал, позволяя определять непрозрачность цвета.aозначает непрозрачность: 0 = прозрачный; 1 = непрозрачная;rgba(255,0,0,0.1) /* 10% opaque red */ rgba(255,0,0,0.4) /* 40% opaque red */ rgba(255,0,0,0.7) /* 70% opaque red */ rgba(255,0,0, 1) /* full opaque red */
Использование образца:
#div {
    background: rgb(54, 25, 25); /* Fall-back for browsers that don't
                                    support rgba */
    background: rgba(54, 25, 25, .5);
}
Отметьте http://caniuse.com/#search=rgba, чтобы увидеть поддержку браузеров
Самый простой способ сделать это - 2 divs, 1 с фоном и 1 с текстом:
#container {
  position: relative;
  width: 300px;
  height: 200px;
}
#block {
  background: #CCC;
  filter: alpha(opacity=60);
  /* IE */
  -moz-opacity: 0.6;
  /* Mozilla */
  opacity: 0.6;
  /* CSS3 */
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
}
#text {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}<div id="container">
  <div id="block"></div>
  <div id="text">Test</div>
</div>Это будет работать с каждым браузером
div {
 -khtml-opacity:.50; 
 -moz-opacity:.50; 
 -ms-filter:"alpha(opacity=50)";
  filter:alpha(opacity=50);
  filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0.5);
  opacity:.50; 
}
Если вы не хотите, чтобы прозрачность влияла на весь контейнер и его детей, проверьте это обходное решение. Чтобы достичь этого, у вас должен быть абсолютно позиционированный ребенок с относительно позиционированным родителем. http://www.impressivewebs.com/css-opacity-that-doesnt-affect-child-elements/
Проверьте рабочую демонстрацию на http://www.impressivewebs.com/demo-files/css-opacity/css-opacity-demo.html
ТОЛЬКО ДЛЯ МЕНЬШЕГО ПОЛЬЗОВАТЕЛЯ:
Если вам не нравится устанавливать цвета с помощью RGBA, но, используя HEX, есть решения.
Вы можете использовать mixin как:
.transparentBackgroundColorMixin(@alpha,@color) {
  background-color: rgba(red(@color), green(@color), blue(@color), @alpha);
}
И используйте его как
.myClass {
    .transparentBackgroundColorMixin(0.6,#FFFFFF);
}
На самом деле это то, что встроенная функция LESS также обеспечивает:
.myClass {
    background-color: fade(#FFFFFF, 50%);
}
Смотрите Как преобразовать цвет HEX в rgba с помощью компилятора Less?
Мой трюк состоит в том, чтобы создать прозрачный .png с цветом и использовать background:url().
У меня была та же проблема. Я хочу 100% прозрачный цвет фона, просто используйте этот код, он отлично работает для меня:
rgba(54, 25, 25, .00004);
Вы можете увидеть примеры на слева на этой веб-странице (область формы контакта)
Отличный способ сделать это - использовать css3.
Создайте div ширину класса - например. supersizer поверх вашей страницы:
затем задайте следующие css-свойства:
  .supersizer {
    background: url("http://fc06.deviantart.net/fs70/f/2012/099/d/f/stackoverflow_16x16_icon_by_muntoo_stock-d4vl2v4.png") no-repeat center center fixed;
    width: 100%;
    height: 100%;
    position: fixed;
    z-index: -1;
    opacity: 0.5;
    -webkit-background-size: cover;
    -moz-background-size: cover;
    -o-background-size: cover;
    background-size: cover;
    top: 0;
  }<div class="supersizer"></div>Для всех, кто встречает этот поток, здесь script называется thatsNotYoChild.js, который я только что написал, который автоматически решает эту проблему:
http://www.impressivewebs.com/fixing-parent-child-opacity/
В принципе, он отделяет дочерние элементы от родительского элемента, но сохраняет элемент в том же физическом местоположении на странице.
Самое простое решение - создать 3 divs. Один из них будет содержать другие 2, один с прозрачным фоном и один с контентом. Сделайте первое относительное положение div и установите значение с прозрачным фоном на отрицательный z-index, затем отрегулируйте положение содержимого, чтобы оно соответствовало прозрачному фону. Таким образом, у вас не будет проблем с абсолютным позиционированием.
использовать
background:url("location of image");//use an image with opacity
Этот метод будет работать во всех браузерах
Вы не можете. У вас должен быть отдельный div, который является именно этим фоном, так что вы можете применить к нему непрозрачность.
Я попытался сделать это недавно, и поскольку я уже использовал jQuery, я обнаружил, что нижеследующее - это наименьшая проблема:
text div сплошной цвет фона, потому что это будет значение по умолчанию без JS.text и примените его к div background.Я уверен, что есть какой-то способ ниндзя CSS, чтобы сделать все это с помощью только плавающих или чего-то еще, но у меня не было терпения, чтобы понять это.