2014-09-12 3 views
0

Я хочу удалить выделение выделения на все изображения на моей странице. я нашел некоторые полезные дополнения, как:Как удалить выделение по изображениям

CSS

img { 
    -webkit-user-select:none; 
    -khtml-user-select:none; 
    -moz-user-select:none; 
    -o-user-select:none; 
     user-select:none; 
     pointer-events:none 
} 

Но когда я нажимаю вниз мою кнопку мыши и выбрать несколько вещей, или нажмите Ctrl+A для «выбрать все» мои изображения получают подсвечиваются голубым оттенком. Я попытался изменить его с помощью:

CSS

img::selection  {background:transparent;color:inherit;} 
img::-moz-selection {background:transparent;color:inherit;} 

Но что не имеют никакого эффекта.

Есть ли у кого-нибудь полезное решение или его еще нет?

P.S. : Я не забочусь о выборе моих изображений - я просто хочу избавиться от этой синей формы.

+0

Попробуйте добавить стиль: план: 0 – Brian

+0

забыл упомянуть - протестировали его уже и как вы можете себе представить, - не будет работать – Kris

+0

[http://jsfiddle.net/ zsbhczkk /] (http://jsfiddle.net/zsbhczkk/) Хром в порядке – Pinal

ответ

1

Здесь идет дурацкое решение, которое я придумал ...

1) После некоторого тестирования я обнаружил, что это происходит только на Mozilla. Другие браузеры не отображают синий цвет на изображениях, если код

img::selection { 
    background: transparent; 
} 

установлен.

2) Даже мозилла - только проблема с элементами изображения. Но другие элементы с background-image подчиняются правилу ::selection.

Таким образом, технически мы могли бы обойти это, полагая, что добавим пустой разброс в нашей разметке после каждого элемента img, который мы установили для отображения: none;

Затем мы можем добавить CSS, который будет работать только в firefox, который устанавливает изображения на display:none и помещает фоновое изображение на соседний промежуток.

Как это:

FIDDLE

**

img::selection { 
 
    background: transparent; 
 
} 
 
img + span { 
 
    display: none; 
 
} 
 

 
@-moz-document url-prefix() { 
 
    img { 
 
     display: none; 
 
    } 
 
    
 
    img + span { 
 
     background: url(http://placehold.it/200x200) no-repeat; 
 
     width: 200px; 
 
     height: 200px; 
 
     display: block; 
 
    } 
 
}
<div>Hello there </div> 
 

 
<img src="http://placehold.it/200x200" /><span></span> 
 

 
<div>Hello there </div>
1: http://jsfiddle.net/GMuzV/30/

+0

Ну, это хорошо работает - к сожалению, я забыл упомянуть, что мне нужен тег для целей SEO. Если сегодня не найдено другого решения - вы получите вознаграждение за свои исследования и работу;) – Kris

+1

Я не предлагал устранить элементы img. Мое решение предлагает просто установить «display: none» на них, а также - только для forefox. Это не должно мешать SEO, потому что разметка остается практически такой же (за исключением дополнительного пролета). – Danield

+1

Вы действительно думаете, что google-боты не могут снизить ваш SEO, поскольку ключевые элементы находятся на дисплее: нет; или видимость: скрытые; ? Тогда почему люди имеют большие видимые метки или нижние колонтитулы? – Kris

0

Это отключил подсветку на DOM элемента:

function disableSelection(target){ 
    if (typeof target.onselectstart!="undefined") // if IE 
     target.onselectstart=function(){return false} 
    else if (typeof target.style.MozUserSelect!="undefined") // if Firefox 
     target.style.MozUserSelect="none"; 
    else // others 
     target.onmousedown=function(){return false;} 

    target.style.cursor = "default"; 
} 

Используйте это так:

disableSelection(document.getElementById("my_image")); 
+0

Я использую вашу работу, но Firefox все еще испортил этот код: / – Kris

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