Препятствуйте тому, чтобы существующий CSS разработал введенный HTML/CSS

Вы должны сначала преобразовать ваш параметр и значение в подходящий формат, например, double / integer! Как то так

    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        return System.Convert.ToInt32(value) == System.Convert.ToInt32(parameter);
    }
16
задан Tom Corelis 9 April 2009 в 04:07
поделиться

5 ответов

Другие предложили очень хорошие способы предотвратить влияние CSS на страницу, а также убедиться, что ваш CSS принимает приоритет, но вы, кажется, больше всего обеспокоены влиянием CSS страницы на вас, то есть добавлением необычного, неожиданного стиля (наподобие того, чтобы все элементы div имели розовый фон).

Единственный способ, которым я могу думать, чтобы вы не допустили их стилизацию от повлиять на ваш внедренный код - это поместить в песочницу то, что вы ввели, как в iframe . В противном случае вам просто придется определить слишком много вещей - вам придется определить каждый отдельный стиль ( padding , border , margin , ] background ... список можно продолжать и продолжать) в селекторе « * » (или еще лучше » так что вы просто переопределяете свой собственный контент), просто чтобы гарантировать абсолютный контроль над вашим CSS.

Редактировать: я понимаю, что последнее решение не обязательно будет слишком болезненным, если вы используете omni-селектор для Сбросить все до базовой линии:

#myid * {
    somestyle1: default;
    somestyle2: default;
    ... 
}

Я нашел кого-то, кто написал такое решение . Если вы прокрутите страницу вниз достаточно далеко, вы увидите ее (из SuzyUK). Это не выглядит полным, но это хорошее начало наверняка.

(Мне тоже было бы интересно узнать, есть ли хороший способ предотвратить это. Я написал сценарии Greasemonkey перед тем, как это внедрит код на страницу. и мне пришлось написать CSS, чтобы переопределить CSS страницы, но в тех случаях я знал, кто моя цель, и мог адаптировать свой CSS прямо к странице.)

так что вы просто переопределяете свой собственный контент), просто чтобы гарантировать абсолютный контроль над вашим CSS.

Редактировать: я понимаю, что последнее решение не обязательно будет слишком болезненным, если вы используете omni-селектор для Сбросить все до базовой линии:

#myid * {
    somestyle1: default;
    somestyle2: default;
    ... 
}

Я нашел кого-то, кто написал такое решение . Если вы прокрутите страницу вниз достаточно далеко, вы увидите ее (из SuzyUK). Это не выглядит полным, но это хорошее начало наверняка.

(Мне тоже было бы интересно узнать, есть ли хороший способ предотвратить это. Я написал сценарии Greasemonkey перед тем, как это внедрит код на страницу. и мне пришлось написать CSS, чтобы переопределить CSS страницы, но в тех случаях я знал, кто моя цель, и мог адаптировать свой CSS прямо к странице.)

просто для того, чтобы вы могли гарантировать абсолютный контроль над своим CSS.

Редактировать: я понимаю, что последнее решение не обязательно будет слишком болезненным, если вы используете omni-селектор, чтобы сбросить все до базовой линии:

#myid * {
    somestyle1: default;
    somestyle2: default;
    ... 
}

Я нашел кого-то, кто написал такое решение . Если вы прокрутите страницу вниз достаточно далеко, вы увидите ее (из SuzyUK). Это не выглядит полным, но это хорошее начало наверняка.

(Мне тоже было бы интересно узнать, есть ли хороший способ предотвратить это. Я написал сценарии Greasemonkey перед тем, как это внедрит код на страницу. и мне пришлось написать CSS, чтобы переопределить CSS страницы, но в тех случаях я знал, кто моя цель, и мог адаптировать свой CSS прямо к странице.)

просто для того, чтобы вы могли гарантировать абсолютный контроль над своим CSS.

Редактировать: я понимаю, что последнее решение не обязательно будет слишком болезненным, если вы используете omni-селектор, чтобы сбросить все до базовой линии:

#myid * {
    somestyle1: default;
    somestyle2: default;
    ... 
}

Я нашел кого-то, кто написал такое решение . Если вы прокрутите страницу вниз достаточно далеко, вы увидите ее (из SuzyUK). Это не выглядит полным, но это хорошее начало наверняка.

(Мне тоже было бы интересно узнать, есть ли хороший способ предотвратить это. Я написал сценарии Greasemonkey перед тем, как это внедрит код на страницу. и мне пришлось написать CSS, чтобы переопределить CSS страницы, но в тех случаях я знал, кто моя цель, и мог адаптировать свой CSS прямо к странице.)

Я понимаю, что последнее решение не обязательно будет слишком болезненным, если вы используете omni-селектор для сброса всего на базовый уровень:

#myid * {
    somestyle1: default;
    somestyle2: default;
    ... 
}

Я нашел кого-то, кто написал такое решение . Если вы прокрутите страницу вниз достаточно далеко, вы увидите ее (из SuzyUK). Это не выглядит полным, но это хорошее начало наверняка.

(Мне тоже было бы интересно узнать, есть ли хороший способ предотвратить это. Я написал сценарии Greasemonkey перед тем, как это внедрит код на страницу. и мне пришлось написать CSS, чтобы переопределить CSS страницы, но в тех случаях я знал, кто моя цель, и мог адаптировать свой CSS прямо к странице.)

Я понимаю, что последнее решение не обязательно будет слишком болезненным, если вы используете omni-селектор для сброса всего на базовый уровень:

#myid * {
    somestyle1: default;
    somestyle2: default;
    ... 
}

Я нашел кого-то, кто написал такое решение . Если вы прокрутите страницу вниз достаточно далеко, вы увидите ее (из SuzyUK). Это не выглядит полным, но это хорошее начало наверняка.

(Мне тоже было бы интересно узнать, есть ли хороший способ предотвратить это. Я написал сценарии Greasemonkey перед тем, как это внедрит код на страницу. и мне пришлось написать CSS, чтобы переопределить CSS страницы, но в тех случаях я знал, кто моя цель, и мог адаптировать свой CSS прямо к странице.)

мы нашли кого-то, кто написал такое решение . Если вы прокрутите страницу вниз достаточно далеко, вы увидите ее (из SuzyUK). Это не выглядит полным, но это хорошее начало наверняка.

(Мне тоже было бы интересно узнать, есть ли хороший способ предотвратить это. Я написал сценарии Greasemonkey перед тем, как это внедрит код на страницу. и мне пришлось написать CSS, чтобы переопределить CSS страницы, но в тех случаях я знал, кто моя цель, и мог адаптировать свой CSS прямо к странице.)

мы нашли кого-то, кто написал такое решение . Если вы прокрутите страницу вниз достаточно далеко, вы увидите ее (из SuzyUK). Это не выглядит полным, но это хорошее начало наверняка.

(Мне тоже было бы интересно узнать, есть ли хороший способ предотвратить это. Я написал сценарии Greasemonkey перед тем, как это внедрит код на страницу. и мне пришлось написать CSS, чтобы переопределить CSS страницы, но в тех случаях я знал, кто моя цель, и мог адаптировать свой CSS прямо к странице.)

12
ответ дан 30 November 2019 в 22:37
поделиться

Оберните введенный HTML-код специальным классом

, например

<div class="my-super-specialized-unique-wrapper"><!--contents--></div>

Затем в вашем CSS добавьте все правила к .my-super-special-unique-wrapper и используйте ! Важный в каждом правиле. Это заставит браузер клиента обращаться с вашим правилом как к высшим для любых элементов, которые соответствуют друг другу, независимо от других стилей, которые могут на них ориентироваться, даже если другие правила вне вашего контроля являются более конкретными.

3
ответ дан 30 November 2019 в 22:37
поделиться

Почему бы не внедрить html-элементы со встроенным форматированием, как это:

<p style="color:red">This to be injected</p>

встроенное оформление имеет приоритет над любым другим правилом, и вы уже создаете разметку, чтобы вставить ее.

Другое решение - использовать очень специфичные идентификаторы DOM для ваших элементов, а затем стилизовать их для добавленного CSS

1
ответ дан 30 November 2019 в 22:37
поделиться

Вам просто нужно быть очень специфичным с вашим CSS селекторы. Это гораздо более специфично, чем правила CSS на главной странице. Возможно, вы также захотите добавить вид глобального сброса CSS, модифицированного, чтобы сбросить только ваш HTML. Под этим я подразумеваю что-то, что сбрасывает все цвета, фоны, шрифты, отступы и т. Д. Обратно в единый стандарт. Оттуда вы можете создавать свои собственные стили.

1
ответ дан 30 November 2019 в 22:37
поделиться

If you're using a Mozilla browser you can actually (if illegally) add visible DOM content to the element outside the element. This will avoid any styles that match on body and are inherited by your content. It may be possible that some styles match on html, which would defeat this technique, but I've found it useful.

eg. using jquery: $('html').append('

blah blah blah
');

Using a popular library is itself a challenge when you don't want your instance of the library to interfere with the uses of the library defined by the pages you're modifying. Greasemonkey's '@require' didn't work for me. I found it necessary (but possible!) to save any existing values of the two or three global names assigned by the jquery script, insert my instance of the library into the DOM, wait for it to be loaded (had to use a timer, that's annoying but I couldn't see a way around it), cache the values assigned to the globals within my own namespace for my own use, and restore the saved ones.

0
ответ дан 30 November 2019 в 22:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: