Измените классы CSS из кода

Очень легко с Flexbox:

div {
  position: relative;
  width: 200px;
  height : 40px;
  display: flex;
  justify-content: center;
  align-items: center;
  border : green solid 2px;
}

div:before{
  content: "";
  background: lightblue;
  position: absolute;
  top: 0;
  left: 0;
  width : 60%;
  height: 100%;
}

span{
   z-index : 1;
}
<div>
  <span>Centered text!</span>
</div>

5
задан DavidRR 7 July 2017 в 12:44
поделиться

4 ответа

Я взял AnthonyWJones исходный код и исправил его так, чтобы он работал независимо от того, что сценарий:

static class WebControlsExtensions
    {
        public static void AddCssClass(this WebControl control, string cssClass)
        {
            List<string> classes = control.CssClass.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries).ToList();

            classes.Add(cssClass);

            control.CssClass = classes.ToDelimitedString(" ");
        }

        public static void RemoveCssClass(this WebControl control, string cssClass)
        {
            List<string> classes = control.CssClass.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries).ToList();

            classes.Remove(cssClass);

            control.CssClass = classes.ToDelimitedString(" ");
        }
    }

    static class StringExtensions
    {
        public static string ToDelimitedString(this IEnumerable<string> list, string delimiter)
        {
            StringBuilder sb = new StringBuilder();
            foreach (string item in list)
            {
                if (sb.Length > 0)
                    sb.Append(delimiter);

                sb.Append(item);
            }

            return sb.ToString();
        }
    }
14
ответ дан 18 December 2019 в 06:04
поделиться

В C# 3 можно добавить некоторые дополнительные методы.

 static class WebControlsExtensions
 {
     public static void AddCssClass (this WebControl control, string cssClass)
     {
         control.CssClass += " " + cssClass;
     }
     public static void RemoveCssClass (this WebControl control, string cssClass)
     {
         control.CssClass = control.CssClass.replace(" " + cssClass, "");
     }
 }

Использование:-

ctl.AddCssClass("ReadOnly");
ctl.RemoveCssClass("ReadOnly");

Обратите внимание, что RemoveCssClass разработан для удаления только тех классов, добавленных AddCssClass, и имеет ограничение, что, где 2 дополнительных имен классов добавляется, самое короткое имя не должно соответствовать точно запуску самого длинного имени. Например, Если Вы добавили "тест" и "test2", Вы не можете удалить тест, не повреждая CssClass. Это могло быть улучшено с RegEx, я ожидаю, что вышеупомянутое будет достаточно для Ваших потребностей.

Отметьте, нет ли у Вас C#3, затем удаляют this ключевое слово от первого параметра и использования статические методы стандартным способом.

8
ответ дан 18 December 2019 в 06:04
поделиться

This version checks to make sure the given class isn't already added before adding it.

public static void CssAddClass(this WebControl control, string className)
{
    var classNames = control.CssClass.Split
        (new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);

    if (classNames.Contains(className))
    {
        return;
    }

    control.CssClass = string.Concat
        (classNames.Select(name => name + " ").ToArray()) + className;
}

public static void CssRemoveClass(this WebControl control, string className)
{
    var classNames = from name in control.CssClass.
                         Split(new[] {' '}, StringSplitOptions.RemoveEmptyEntries)
                     where name != className
                     select name + " ";


    control.CssClass = string.Concat(classNames.ToArray()).TrimEnd();
}
1
ответ дан 18 December 2019 в 06:04
поделиться

Можно ли сделать собственные классы? Произойдите из Кнопки ASP.NET и добавьте собственность для Только для чтения. Где-нибудь..., вероятно, в OnPreRender, можно проверить новое свойство и установить (или не установить), свойство CSSClass соответственно.

0
ответ дан 18 December 2019 в 06:04
поделиться
Другие вопросы по тегам:

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