Абстракция далеко от CSS

Правильный, эффективный ответ, написанный как генератор.

import os

def reverse_readline(filename, buf_size=8192):
    """a generator that returns the lines of a file in reverse order"""
    with open(filename) as fh:
        segment = None
        offset = 0
        fh.seek(0, os.SEEK_END)
        file_size = remaining_size = fh.tell()
        while remaining_size > 0:
            offset = min(file_size, offset + buf_size)
            fh.seek(file_size - offset)
            buffer = fh.read(min(remaining_size, buf_size))
            remaining_size -= buf_size
            lines = buffer.split('\n')
            # the first line of the buffer is probably not a complete line so
            # we'll save it and append it to the last line of the next buffer
            # we read
            if segment is not None:
                # if the previous chunk starts right from the beginning of line
                # do not concact the segment to the last line of new chunk
                # instead, yield the segment first 
                if buffer[-1] is not '\n':
                    lines[-1] += segment
                else:
                    yield segment
            segment = lines[0]
            for index in range(len(lines) - 1, 0, -1):
                if len(lines[index]):
                    yield lines[index]
        # Don't yield None if the file was empty
        if segment is not None:
            yield segment
14
задан kukkuz 23 August 2017 в 03:12
поделиться

16 ответов

Можно всегда использовать движок шаблонов для добавления переменных и caclulated полей в файлы CSS.

8
ответ дан 1 December 2019 в 05:49
поделиться

CSS занимает немного времени для изучения, но вещью, которую я первоначально нашел самым обескураживающим, было то, что столько взломов было необходимо, чтобы заставить все браузеры вести себя тот же путь. Изучение системы, которая не придерживается логики, кажется немым..., но я цеплялся за неопределенную веру, что существует логика позади особенности каждого браузера, в форме спецификации W3. Кажется, что браузеры нового поколения медленно входят в строку - но IE6 все еще делает мой жизненный ад ежедневно.

, Возможно, создание уровня абстракции между совместимым/допустимым кодом CSS и дрянными реализациями браузеров не было бы плохой вещью. Но если бы такая вещь была создана то - она должна была бы быть приведена в действие JS (или jQuery)? (и это создало бы необоснованно нагрузка, с точки зрения обработки стоимости?)

я нашел что это полезный 'выравнивать землю' при сценариях с CSS. Существуют, вероятно, загрузки различных ароматов сценария сброса там - но использующий сброс YUI помог мне сократить количество причуд, с которыми я иначе встретился бы - и сетки YUI делают жизнь немного легче иногда.

0
ответ дан 1 December 2019 в 05:49
поделиться

@SCdF: Я думаю, что Ваша сводка здесь справедлива. Но аргумент, что у некоторых людей нет времени для изучения CSS, является поддельным - просто думают о в течение секунды. Замените технологией, которую Вы освоили, и Вы будете видеть почему:

я. Ненависть. Java. Есть ли что-то там, которое просто запишет это для меня? Не у всех есть время к основному Java.

CSS является, конечно, несовершенной технологией - у меня есть большие надежды, что 5 лет с этого времени, мы не будем иметь дело с несовместимостями браузера больше (мы почти там), и что у нас будут лучшие инструменты стороны автора (я записал макрос Visual Studio для своего собственного использования, которое обеспечивает вид переменных и вычислений, которые Вы описываете, таким образом, это не невозможно) - но настоять, чтобы Вы смогли использовать эту технологию эффективно, действительно не понимая это просто, не разумны.

0
ответ дан 1 December 2019 в 05:49
поделиться

Я полагаю, что новички распространенных ошибок имеют с CSS, относятся к специфике. Если Вы разрабатываете тег, действительно ли Вы уверены, что действительно хотите разработать каждого в документе или определенном "классе" теги?

я обычно начинаю быть очень конкретным со своими селекторами CSS и обобщаю их, когда я считаю целесообразным.

Вот humerours статья о предмете, но также и информационная: войны Специфики

1
ответ дан 1 December 2019 в 05:49
поделиться

Для платформ CSS Вы могли рассмотреть Сетки YUI . Это делает базовый макет намного более быстрым и более простым, хотя используется в его необработанной форме, которую это действительно ставит под угрозу на семантике.

2
ответ дан 1 December 2019 в 05:49
поделиться

Ключ к реальному пониманию CSS (и головные боли браузера) является основательным пониманием модель поля, используемая Стандартами CSS и неправильной моделью, используемой некоторыми браузерами. После того как Вы имеете это вниз и начинаете изучать селекторы, Вы убежите от браузера, определенные свойства и CSS станут чем-то, чего Вы с нетерпением ждете.

1
ответ дан 1 December 2019 в 05:49
поделиться

Также выезд BlueprintCSS, платформа расположения в CSS. Это не решает все Ваши проблемы, но многих, и Вы не должны писать CSS сами.

1
ответ дан 1 December 2019 в 05:49
поделиться

Затем прибывает несколько выпуск

браузера, Там это , который помогает удалить некоторые несоответствия из IE. Можно также использовать jQuery для добавления некоторых селекторов с помощью JavaScript.

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

4
ответ дан 1 December 2019 в 05:49
поделиться

Для переменной поддержки я использовал PHP с заголовками CSS к большому эффекту для этого. Я думаю, что можно сделать это на любом языке. Вот php образец:

<?
header('content-type:text/css');
header("Expires: ".gmdate("D, d M Y H:i:s", (time()+900)) . " GMT"); 

$someColorVar = "#cc0000";
?>
BODY {
      background-color: <?= someColorVar ?>;
     }
2
ответ дан 1 December 2019 в 05:49
поделиться

Решения проблем, кажется, часто включают jiggering числа вокруг подобного некоторый шеф-повар, пытающийся удаться точно, сколько мускатного ореха, чтобы вставить его перспективный известный рисовый пудинг

я только получаю это при попытке заставить материал работать в IE.

, Если Вы изучаете CSS до такой степени, когда, можно кодировать большинство вещей, не имея необходимость искать ссылку (при тихом поиске ссылки регулярно, Вы действительно не знаете это и не можете утверждать, что жаловались, что я думаю), и затем разработайте для Firefox/сафари, это - довольно хорошее место, чтобы быть в.

Отпуск боль и страдание совместимости IE в конец после того, как это будет работать в FF/Safari, таким образом, Ваш ум припишет вину IE, где это проклинает хорошо, принадлежит, а не CSS в целом.

2
ответ дан 1 December 2019 в 05:49
поделиться

Это уточняет мой предыдущий ответ.

, Когда я сначала начал использовать CSS, я также думал, что это была боль, что это не поддерживало переменные, выражения, и т.д. Но когда я начал использовать его все больше, я разработал другой стиль для преодоления этих проблем.

, Например, вместо этого:

a { color: red }
.entry { color: red }
h1 { color: red }

можно сделать:

a, .entry, h1 { color: red }

можно сохранить цвет объявленным в одном месте путем выполнения этого.

, После того как Вы используете CSS достаточно, необходимо смочь преодолеть большинство несоответствий браузера легко. Если Вы находите, что необходимо использовать взлом CSS существует, вероятно, лучший способ сделать это.

6
ответ дан 1 December 2019 в 05:49
поделиться

Посмотрите, это - проблема с ТАК - каждый ответ до сих пор сделал справедливое замечание и должен считаться окончательным ответом. Позвольте мне попытаться подвести итог:

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

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

3
ответ дан 1 December 2019 в 05:49
поделиться

Переменные CSS прибывают (относительно) скоро, но я соглашаюсь, что они давно ожидаются. Тем временем возможно использовать CSS, обрабатывающий по шаблону механизм, такой как Дерзость или даже динамический веб-язык по Вашему выбору, генерировать Ваши таблицы стилей программно.

2
ответ дан 1 December 2019 в 05:49
поделиться

Если некоторым шансом Вы, оказывается, используете Ruby, существует Дерзость . Это поддерживает иерархические селекторы (использующий добавление отступа для установления иерархий), среди прочего, который делает жизнь легче к расширению с синтаксической точки зрения (Вы повторяете себя намного меньше).

я, конечно, с Вами, все же. В то время как я считал бы меня мелким экспертом CSS, я думаю, что было бы хорошо, если бы были инструменты для CSS, любят существует с JavaScript (Прототип, JQuery, и т.д.). Вы говорите инструмент, что Вы хотите, и он обрабатывает закулисные несоответствия браузера. Это было бы идеально, мне кажется.

10
ответ дан 1 December 2019 в 05:49
поделиться

Что я нашел, что работы лучше всего должны действительно изучить CSS. Я имею в виду действительно , изучают CSS.

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

ключ должен сделать это достаточно, что это прибывает естественное. CSS может быть очень изящным, если Вы знаете то, что Вы хотите сделать перед запуском, и у Вас есть достаточно опыта сделать это.

Предоставленный, это - также главный ЛАВАШ для делания иногда, но даже проблемы перекрестного браузера не так плохи, если Вы действительно практика в нем и изучает, какие работы и что не делает, и как обойти проблемы.

Все это взятия являются практикой, и вовремя можно стать хорошими в нем.

34
ответ дан 1 December 2019 в 05:49
поделиться

Простите за это, ребята, но все вы упустили суть.

Слово абстракция является ключевым. Допустим, вы и Салли создаете веб-сайт. Вы укладываете формы, а она закругляет углы. И вы, и она определили несколько селекторов.

Что, если вы, не зная, выбрали имена классов, которые конфликтуют с именами Салли? Видите ли, вы не можете «скрыть» (абстрагироваться) детали, когда работаете в CSS. Вот почему вы не можете исправить ошибку в IE, а затем создать автономное решение, которое другие могут использовать как есть, так же, как вы вызываете процедуры на языке программирования, заботясь только о предварительных и постусловиях и не думая о , как он работает внутри. Вы просто думаете о , чего вы хотите достичь.

Это самая большая проблема Интернета: в нем полностью отсутствуют механизмы абстракции! Большинство из вас воскликнет: «В этом нет необходимости; бросайте курить крэк!»

Вместо этого вы будете выполнять работу, скажем, исправляя ошибки макета или скругляя углы, или снова и снова обсуждая «лучшую» разметку для того или иного случая и снова. Вы найдете сайт, который объясняет решение, затем скопируйте и вставьте ответ, а затем адаптируйте его к своему конкретному случаю, даже не задумываясь, что, черт возьми, вы делаете! Да, именно это вы и сделаете.

Конец разглагольствования.

Вы найдете сайт, который объясняет решение, затем скопируйте и вставьте ответ, а затем адаптируйте его к своему конкретному случаю, даже не задумываясь, что, черт возьми, вы делаете! Да, именно это вы и сделаете.

Конец разглагольствования.

Вы найдете сайт, который объясняет решение, затем скопируйте и вставьте ответ, а затем адаптируйте его к своему конкретному случаю, даже не задумываясь, что, черт возьми, вы делаете! Да, именно это вы и сделаете.

Конец разглагольствования.

5
ответ дан 1 December 2019 в 05:49
поделиться
Другие вопросы по тегам:

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