У меня есть часть CSS, которую я использовал несколько раз, которая сочетает фоновое изображение и цвет фона, и до сих пор у меня не было проблем с этим. Однако в этом случае у меня есть странная проблема с мобильными браузерами, где она полностью уменьшает фоновое изображение на 1 пиксель, показывая цвет фона, где я не хочу, чтобы его видели!
CSS:
.navlink {
background-color: #000000;
color: #FFFFFF;
text-decoration: none;
height: 20px;
width: 200px;
margin: 0;
padding: 0;
float: left;
background-image: url(images/navarrowblank.gif);
background-position: top right;
background-repeat: no-repeat;
}
Не имеет значения, к какому элементу HTML применяется класс. Это также не имеет значения, если я использую устройство iOS или устройство Android (но если я попробую тот же код в любом браузере рабочего стола [и он был проверен во всех очевидных!], Я не вижу никаких проблем вообще).
Я уже попробовал размер фона и установил границу объекта в 0 - ни одна из них не разрешила проблему.
Само изображение составляет 24px на 25px, но, похоже, отображает его в 18px на 23px.
Любые предложения, или я должен просто укусить пулю и создать весь фон как изображение и потерять цвет фона?
JSFiddle здесь: http://jsfiddle.net/frustratedwithdotnet/a64VP/2/ (примечание: удалена красная рамка)
После четырех дней стрижки волос и без каких-либо объяснений, почему код, который я использовал десятки раз в других местах, должен внезапно исчезать, я решил это, сделав фоновое изображение полной шириной контейнера ( вместо 24px на 25px) и заполняя его черным вместо того, чтобы полагаться на цвет фона, чтобы сделать это (оставив правую сторону белого).
Не доволен этим решением, но отсутствует что-то еще лучшее, что у меня есть сейчас.
В этом случае вы не можете указать цвет фона и изображение на одном уровне. Иерархия в значительной степени говорит о том, что изображения имеют приоритет над цветами. Чтобы получить эффект, который вы ищете, вам нужно обернуть элемент в div и создать его с цветом фона.
Итак, вы будете смотреть на что-то вроде:
.wrap { background: #000; }
.nav-link { background: url(images/navarrowblank.gif) top left no-repeat; }
<div class="wrap"><div class="nav-link">Lorem Ipsum</div></div>
Надеюсь это поможет.