2017-01-26 2 views
-1

Я пытался переопределить предопределенное фоновое изображение в CSS с встроенным фоном, считая, что он действительно переопределит, но, похоже, это не так. Как я могу это достичь?Почему фоновое изображение имеет более высокий приоритет в CSS, чем встроенный фоновый цвет?

.section { 
 
    position: relative; 
 
    top: 0; 
 
    left: 0; 
 
    width: 250px; 
 
    height: 250px; 
 
    background-image: url("https://static.pexels.com/photos/36487/above-adventure-aerial-air.jpg"); 
 
    background-size: cover; 
 
}
<div class="section" style="background-color: rgb(250, 40, 38)"> 
 
    
 
</div>

Спасибо.

+1

Потому что фоновое изображение всегда отображает «покрытие» цвета фона. Добавьте 'background-image: none' в свои встроенные стили, и вам хорошо идти. –

+1

вы также можете использовать 'background' inline вместо' background-color' –

ответ

1

Попробуйте это. Работал для меня.

.section { 
 
    position: relative; 
 
    top: 0; 
 
    left: 0; 
 
    width: 250px; 
 
    height: 250px; 
 
    background-image: url("https://static.pexels.com/photos/36487/above-adventure-aerial-air.jpg"); 
 
    background-size: cover; 
 
}
<div class="section" style="background-image:none; background-color: rgb(250, 40, 38)"> 
 
    
 
</div>

+0

да, спасибо всем, я буду использовать этот, более удобный для моего дела. – msqar

1

У вас могут быть как background-color, так и background-image. Если вы хотите переопределить background-image, вам нужно сделать это с помощью background: rgb(250, 40, 38).

А ПОЧЕМУ:

у вас есть эти свойства фона:

background-image 
background-repeat 
background-color 
background-size 

т.д.

Теперь, если вы установите background включить все эти свойства, так что вы можете указать это:

background-image: url(image.jpg) 

или background-color: rgb(250, 40, 38)

или background: rgb(250, 40, 38)

Это последний будет считать, что нет изображения, поскольку он не указан в background и таким образом изменить его с указанным цветом фона

+0

Но * почему * - это часть, которую ОП запрашивает .... –

1

Просто установите фоновое изображение: нет;

eg;

.section { 
 
    position: relative; 
 
    top: 0; 
 
    left: 0; 
 
    width: 250px; 
 
    height: 250px; 
 
    background-image: url("https://static.pexels.com/photos/36487/above-adventure-aerial-air.jpg"); 
 
    background-size: cover; 
 
}
<div class="section" style="background-image:none; background-color: rgb(250, 40, 38)"> 
 
    
 
</div>

EDIT: Причина изображение имеет более высокий приоритет, если вы хотите использовать изображение, но объект может выходить за пределы размера изображения (и у вас есть повторный набор на нет), то фон -цвет заполняет остальную часть пространства.

+1

«почему» - это изображение и цвет, это два разных атрибута, а элемент может есть оба. Изображение имеет приоритет, но если изображение недостаточно велико, тогда цвет отображается выше размера изображения (почему оба поддерживаются) Вы можете переопределить изображение, как показано, или просто используя «background: rgb (250,40,38) ", который из-за отсутствия атрибута url изображения не подразумевает никакого изображения. Я дал свой пример явно переопределения свойства background-image –

+0

имеет смысл! :) Теперь я понимаю. Благодаря! – msqar

1

Я думаю, что проблема заключается в том, что вам нужно добавить свой CSS для нового цвета, а также стиль для самого фонового изображения.

Если вы желаете, чтобы скрыть изображение, чтобы ваш цвет придет через и быть видимыми добавить

<div class="section" style="background-color: rgb(250, 40, 38);background-image:none;"> 
 
    
 
</div>

Это должно сделать трюк.:) Надеюсь, это поможет

+0

Это не отвечает на вопрос * почему вопрос ... однако, это так ... –

+1

Я думаю, что нет, но я заметил, что предыдущий комментарий уже отправил им URL-адрес w3c для справки в этом отношении. :) В конце концов они также спросили, как они могут это достичь, поэтому я дал ответ. no biggie :) – DigitalDesigner

1

Используйте фон вместо фона изображения и цвет фона:

.section { 
    position: relative; 
    top: 0; 
    left: 0; 
    width: 250px; 
    height: 250px; 
    background: url("https://static.pexels.com/photos/36487/above-adventure-aerial-air.jpg"); 
    background-size: cover; 
} 

<div class="section" style="background: rgb(250, 40, 38)"> 

и он будет работать!

0

Спецификация была написана с прогрессирующим усилением в виду:

Используйте фоновое изображение, чтобы отобразить изображение, и цвет фона в качестве запасного варианта для старых браузеров.

Смежные вопросы