Центрировать изображение со ссылкой на него

Можно ли центрировать изображение только путем установки класса в тег img без побочных эффектов? Проблема заключается в следующем: у меня есть привязка вокруг изображения. Если я использую следующий CSS

.aligncenter {
    clear: both;
    display: block;
    margin-left: auto;
    margin-right: auto;
}

И этот (урезанный) HTML:

<a href="/path/to/image.jpg" class="fancybox" rel="fancybox" title="System">
    <img src="/path/to/image.jpg" title="System" class="aligncenter">
</a>

ссылка занимает всю ширину основного div. Это означает, что изображение не только доступно для клика - также пространство вокруг изображения (на самом деле вся ширина) доступно для кликов. Это через CSS display: block. enter image description here

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

Фон: Вы можете прочитать этот раздел. Речь идет о Wordpress и встроенном редакторе. Он автоматически генерирует класс aligncenter на изображении (если пользователь нажал центральную кнопку). Мне нужно это для моей темы. По словам модераторов, это должно быть только вопросом CSS и не связано с изменением кода в Wordpress.

Ответ 1

Второй ответ:
вставьте это в functions.php

add_filter('image_send_to_editor','give_linked_images_class',10,8);
function give_linked_images_class($html, $id, $caption, $title, $align, $url, $size, $alt = '' ) {
    // only do this on center
    if($align == 'center') {
        $html = str_replace('aligncenter', '', $html);
        $html = '<p style="width: 100%; text-align: center;" >'.$html.'</p>';
    }
    return $html;
}

Вниз, это не повлияет на уже вставленные изображения...
Также, если вы можете переместить стиль <p> в таблицу стилей.

Ответ 2

в классе aligncenter добавить text-align: center

.aligncenter {
    clear: both;
    display: block;
    margin-left: auto;
    margin-right: auto;
    text-align:center;
}

Ответ 3

Я не знаком с wordpress, но вы можете попробовать установить изображение и свойство привязки css 'display' в 'inline-block'.

Если вы ограничены в изменении документа DOM, другой параметр добавляет атрибут 'onClick' к изображению.
Это позволит вам запустить некоторую функцию после щелчка изображения.
Например, если вы хотите перенаправить на другую страницу:

<img src='myImg.png' onclick='myRedirect()' style='cursor:pointer'/>

И в заголовке страницы:

<script type='text/JavaScript'>
    var myRedirect = function(){
        window.location.href = 'Some other location';
    }
</script>

Обратите внимание на style='cursor:pointer', который изменяет курсор мыши на "ручной" указатель.

Ответ 4

Чтобы избежать использования дополнительного контейнера div или даже JavaScript, вы можете сделать привязку в виде блока:

.logo {display: block; height: 115px; margin: 0 auto; width: 115px;}

/* height and width must equal your image values */

<a href="#" class="logo"><img src="logo.png" alt="Logo" /></a>

Live demo: http://jsfiddle.net/performancecode/Ggk8v/

Ответ 5

он по-прежнему включает div, но способ, которым я это делаю:

<div class="megaman">
<a href="img/megaman.jpg"><img src="img/megaman.jpg" alt="megaman"></a>
</div>



img {
height: 125px;
width: 200px;
}

.megaman{
text-align: center;
margin: 0 auto;
display: block;
}

И да, я заменил .logo на .megaman, потому что мегаманские камни! Но это должно сработать. Я не мог понять это без использования div.