Проблема с видимостью цвета CSS

Это может показаться очень странным вопросом, но у меня есть следующая проблема:

введите здесь описание изображения

Как видите, когда изображение темного цвета, нумерация страниц отображается нечетко.

Я хочу изменить цвет страницы в зависимости от цвета изображения ниже.

Возможно ли это с rgb/css? Поочередно с Javascript?


person Barney    schedule 20.02.2013    source источник
comment
было бы проще, если бы вы предоставили нам и HTML...   -  person bipen    schedule 20.02.2013
comment
Зачем вам нужен HTML для этого? Я четко обозначил проблему на картинке...   -  person Barney    schedule 20.02.2013
comment
возможно, это поможет: [stackoverflow.com/questions/2541481/ [1]: stackoverflow.com/questions/2541481/   -  person andsoa    schedule 20.02.2013
comment
если мы сможем увидеть HTML, мы узнаем, какие элементы доступны для стилизации.   -  person dnagirl    schedule 20.02.2013
comment
Почему бы вам просто не использовать Javascript и применять разные стили.   -  person Jacob    schedule 20.02.2013
comment
Зачем вам нужен HTML для этого? -- Это удобный способ получить одобрение, не предлагая никакой помощи.   -  person DavidB    schedule 20.02.2013


Ответы (4)


Я предлагаю вам использовать другой подход к дизайну, а не использовать JS. Попробуйте добавить border со светлым оттенком серого, который будет работать на любом фоне. Посмотрите эту демонстрацию:

http://jsfiddle.net/fqZf4/3/

person otinanai    schedule 20.02.2013
comment
Собственно этим я и занялся :) - person Barney; 20.02.2013

Например, вы можете использовать 50% rgba:

element {
color: rgba(255,255,255,0.5);
}

Это сделает шрифт белым и установит непрозрачность на 50%. Вы можете получить тот же эффект с помощью:

element {
opacity: 0.5;
color: rgb(255,255,255);
}

Обратите внимание, что первый метод по-прежнему поддерживается не во всех браузерах.

Чтобы нумерация страниц не скрывалась на белом фоне, вы можете использовать тень текста:

element {
text-shadow: 0px 1px 3px #000;
}

(См. здесь)

person tobspr    schedule 20.02.2013
comment
Это хороший метод, но, к сожалению, нумерация страниц недостаточно видна на более темных изображениях. - person Barney; 20.02.2013
comment
Что делать, если фон имеет тот же цветовой тон, что и непрозрачность? Вы по-прежнему теряете видимость разбивки на страницы. - person otinanai; 20.02.2013
comment
Затем вы можете придать шрифту светлый фон (например, цвет фона: rgba(0,0,0,0.2)). - person tobspr; 20.02.2013
comment
Наше использование text-shadow, как описано выше - person tobspr; 20.02.2013
comment
Это неподходящее решение, если изображения загружаются динамически, и вы не можете протестировать каждое изображение, которое должно быть загружено. - person otinanai; 20.02.2013

Если вы можете сохранить значение с изображением, вы можете использовать атрибут data-*:

// images that are dark gets the new attribute
<img src="" alt="">
<img src="" alt="" data-invert="true">

// let's say this is you pagination
<nav id="pagination">
    // your pagination elements
</nav>

Затем вы можете обновить функцию слайда (это всего лишь псевдокод):

function slide() {
    // lets say you know the current image and there's an array of images
    var current = 1;
    if ('true' == images.eq(current).attr('data-invert') {
        $('pagination').addClass('invert');
    } else {
        $('pagination').removeClass('invert');
    }
}

А класс invert имеет просто более яркую цветовую схему, которая хорошо смотрится на более темных изображениях.

person insertusernamehere    schedule 20.02.2013

Дайте тексту серую тень. Это будет работать отлично.

person Seetpal singh    schedule 20.02.2013