Удалить атрибуты высоты и ширины тега изображения

Для создания адаптивного веб-сайта с Typo3 и Twitter Bootstrap, я хотел бы удалить атрибуты изображений height и width.

Вот как изображения создаются в Frontend с помощью элемента содержимого типа text & image и image.

<img src="typo3temp/pics/a625b79f89.jpg" width="300" height="226" alt="blabla" />

Я бы хотел удалить атрибуты измерения и получить следующее:

<img src="typo3temp/pics/a625b79f89.jpg" alt="blaba" />

Может кто-нибудь мне помочь ?


person alienlebarge    schedule 13.06.2012    source источник
comment
если вас устраивает jquery, просмотрите этот api.jquery.com/removeAttr   -  person Felix Christy    schedule 13.06.2012


Ответы (12)


Невозможно удалить атрибуты изображения высоты или ширины с помощью опечатки.

Но вы можете переопределить его с помощью CSS, чтобы создать отзывчивый веб-сайт.

img { height:100% !important; width:100% !important; }

person Christian Michael    schedule 01.02.2014
comment
Я столкнулся с той же проблемой, чтобы сохранить исходный размер нового изображения, ширина и высота старых атрибутов, которые нужно удалить. Jquery way [здесь] [1], установив 100%! Important в css, вы указываете браузеру установить размер img на 100% относительно его родителя, независимо от его исходного размера, что, я думаю, не является правильным способом [1]: w3schools.com/jquery/html_removeattr.asp - person Naga; 03.08.2014

Вызов тега изображения в функции document.ready.

$('img').removeAttr('width').removeAttr('height');
person Sundar    schedule 13.06.2012
comment
С помощью Bootstrap вы можете одновременно добавить к изображениям класс img-responsive. $('img').removeAttr('width').removeAttr('height').addClass('img-responsive'); - person Dylan Valade; 24.01.2014

К вашему сведению: это невозможно удалить с помощью опечатки. Атрибуты width и height жестко запрограммированы в sysext/cms/tslib/class.tslib_content.php функции cImage. (Typo3 4.7)

person Ivaldi    schedule 13.06.2012
comment
Жалко, что разработчикам требуется так много времени, чтобы избавиться от привычек Web 1.0. - person Mateng; 02.01.2014

Использовать jquery

установите идентификатор для вашего объекта изображения:

<img src="typo3temp/pics/a625b79f89.jpg" width="300" height="226" alt="blabla" id="myimage" />

$('#myimage').removeAttr("heigth").removeAttr("width");

вот альтернативный код javascript:

var myImage= document.getElementById("myimage");
myImage.removeAttribute("heigth");
myImage.removeAttribute("width");
person Mennan    schedule 13.06.2012
comment
Я бы предпочел решение через опечатку. Но протестирую в jQuery. Я не думал о jQuery. Я это протестирую. - person alienlebarge; 13.06.2012
comment
я предложил использовать jquery, не пожалею - person Mennan; 13.06.2012

Это станет возможным в TYPO3 6.2 LTS. Оформить заказ http://forge.typo3.org/issues/49723.

person witrin    schedule 12.09.2013

Чтобы удалить эффекты атрибутов фиксированной ширины и / или высоты без фактического удаления этих атрибутов, вы можете вернуть им значение «авто» в определениях CSS:

img {
    height: auto !important;
    width: auto !important;
}

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

Например. если ваши жидкие изображения расположены в div-оболочке с классом "fluid_pics", вы можете использовать:

.fluid_pics img {
    height: auto !important;
    width: auto !important;
}

Часто вам нужно будет только вернуть высоту автоматически, так как ширина уже перезаписана вашей структурой (например, Twitter Bootstrap) на 100%.

person Jpsy    schedule 02.10.2014
comment
На мой взгляд, это лучший подход. JavaScript не требуется, и такие вещи, как автоматическое масштабирование в сочетании с максимальной шириной, по-прежнему работают. Спасибо! - person Ole; 09.05.2015

TypoScript для удаления атрибутов «ширина» и «высота» из исходного кода. TYPO3 CMS 6.1+.

tt_content.image.20.stdWrap.parseFunc.nonTypoTagStdWrap.HTMLparser.tags.img.fixAttrib {
width.unset = 1
height.unset = 1
border.unset = 1
}

tt_content.textpic.20.stdWrap.parseFunc.nonTypoTagStdWrap.HTMLparser.tags.img.fixAttrib {
width.unset = 1
height.unset = 1
border.unset = 1
}

lib.parseFunc_RTE.nonTypoTagStdWrap.HTMLparser.tags.img.fixAttrib {
width.unset = 1
height.unset = 1
border.unset = 1
}

Пример tt_news: Список новостей

plugin.tt_news.displayList.image.stdWrap.parseFunc.nonTypoTagStdWrap.HTMLparser.tags.img.fixAttrib {
width.unset = 1
height.unset = 1
border.unset = 1
}
person Errol    schedule 06.04.2015

Если вашему изображению назначен id или другой уникальный атрибут, вы можете легко сделать это:

var myImg=document.getElementById('myImage');
myImg && myImg.removeAttribute('height') && myImg.removeAttribute('width');
person user2428118    schedule 13.06.2012

Для Typo3 6.2 и выше вы можете установить собственный макет рендеринга изображения (фрагмент относится к настройке TS):

tt_content.image.20.1 {
    layout {
        mylayout {
            # equals default rendering, except width and height removed
            element = <img src="###SRC###" ###PARAMS### ###ALTPARAMS### ###BORDER### ###SELFCLOSINGTAGSLASH###>
        }
    }
}

Включите настраиваемый макет для css_styled_content (сниппет принадлежит константам TS):

styles.content.imgtext.layoutKey = mylayout

См. https://docs.typo3.org/typo3cms/TyposcriptReference/ContentObjects/Image/Index.html#cobj-image-layoutkey для получения подробной информации о cObject IMAGE.

person chrisfish    schedule 14.09.2015
comment
Я не могу заставить это работать с T3 7.6 - оба сценария входят в раздел НАСТРОЙКА моего шаблона? - person uTILLIty; 07.08.2016
comment
@uTILLIty Я отредактировал ответ подсказками, где нужно разместить фрагменты. - person chrisfish; 08.08.2016

Есть решение для старых TYPO3 с TYPOSCRIPT:

stdWrap {
    replacement {
        10 {
            search = /\s+(width|height)="[^"]+"/
            useRegExp = 1
            replace =
        }
    }
}

Используйте этот stdWrap-TS там, где отображается ваше изображение.

person Martin Wunderlich    schedule 04.10.2016

он не работает в 6.1: /, но вы можете использовать CSS:

img {
    display: block;
    max-width: 100%;
    height: auto;
}
person Sebastian Schmal    schedule 07.04.2015

Это ОЧЕНЬ простое решение с jQuery. я нашел ответ на wpwizard.net.

Вот URL-адрес: http://wpwizard.net/jquery/remove-img-height-and-width-with-jquery/

Вот jQuery:

<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
jQuery.noConflict();
jQuery(document).ready(function($){

    $('img').each(function(){ 
        $(this).removeAttr('width')
        $(this).removeAttr('height');
    });

});
</script>
person Mitch    schedule 11.03.2016