ASP.net - Как достичь CSS с постоянными значениями, арифметикой и манипулированием строками - PullRequest
0 голосов
/ 30 марта 2012

При разработке веб-сайтов ASP.NET (с использованием веб-форм VB.NET) - я трачу много времени на написание файлов CSS, и они всегда кажутся грязными (дублирование кода) и очень длинными.

Все, чего я хочу достичь - это уметь манипулировать CSS с помощью кода VB.NET следующими способами:

  • Используйте целочисленную переменную для хранения моего "золотого" числа 7 и используйте его для ширины, отступов, полей и т. Д., Где это необходимо
  • Используйте строковые переменные для хранения моих "золотых" шестнадцатеричных цветовых кодов, например. "# 44C5F2" и использовать их для цвета, фона, цвета рамки и т. Д., Где необходимо
  • Используйте целочисленную переменную, чтобы установить высоту элемента и иметь четыре дочерних элемента с высотой: mynum / 4

Я просто хочу использовать базовый номер VB.net и манипуляции со строками для создания файла CSS на лету.

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

Я также понимаю, что потерял бы поддержку IntelliSense в Visual Studio CSS, но ...

Как мне этого добиться?

Должен ли я использовать:

  • Универсальные обработчики (ASHX)
  • Темы ASP.NET
  • Скины ASP.NET
  • Что-то еще?

Я просто несколько указателей.

Любая помощь приветствуется.

Спасибо.

Ответы [ 3 ]

3 голосов
/ 30 марта 2012

Я полагаю, вы ищете что-то вроде http://www.dotlesscss.org/

1 голос
/ 30 марта 2012

Вы должны взглянуть на МЕНЬШЕ , который расширяет CSS, чтобы позволить

динамическое поведение, такое как переменные, миксины, операции и функции* точка меньше - версия .NET с интеграцией в ASP.NET.

0 голосов
/ 03 апреля 2012

Я решил пойти с WebHandler (ASHX файл) в конце:

CssOnTheFly.ashx

<%@ WebHandler Language="C#" Class="CssOnTheFly" CodeBehind="CssOnTheFly.ashx.cs" %>

CssOnTheFly.ashx.cs

using System;
using System.Web;

public class CssOnTheFly : IHttpHandler
{

    private HttpResponse r;

    public void ProcessRequest(HttpContext context)
    {
        context.Response.ContentType = "text/css";

        r = context.Response;

        writeCss();
    }

    public bool IsReusable
    {
        get
        {
            return false;
        }
    }

    private void writeCss()
    {
        wl("body {");
        wl("height: 100%;");
        wl("}");
    }

    private void wl(string s)
    {
        r.Write(s + Environment.NewLine);
    }
}

Потому что я мог создавать на заказ классы для генерации CSS на лету - поэтому у меня больше гибкости.

Я думаю, что мне нужно использовать C # для этого, потому что VB.NET на самом деле не имеет многострочных строковых литералов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...