Я хочу, чтобы
blockquote>form.data['field']
иform.field.value
всегда имели одинаковое значениеЭто возможно, потому что оно включает декорированные имена и индексирование, т. е. совершенно разные конструкции из названий
a
иb
, о которых вы спрашиваете, и с вашей просьбой совершенно невозможно. Зачем спрашивать о чем-то невозможном и совершенно отличном от (возможного) предмета, который вы на самом деле хотите ?!Возможно, вы не понимаете, насколько радикально разные имена и декорированные имена. Когда вы ссылаетесь на barename
a
, вы точно получаете объектa
, последний связанный в этой области (или исключение, если оно не было связано в этой области) - это такой глубокий и фундаментальный аспект Python, что он не может быть искажен. Когда вы ссылаетесь на имя украшенноеx.y
, вы запрашиваете объект (на который ссылается объектx
), чтобы указать «атрибутy
» - и в ответ на это запрос, объект может выполнять полностью произвольные вычисления (и индексирование очень похоже: оно также позволяет выполнять произвольные вычисления в ответ).Теперь ваш пример «фактического желаемого» таинственен, потому что в каждом случае два уровни индексации или получения атрибутов, поэтому тонкость, которую вы жаждете, может быть введена разными способами. Какие еще атрибуты
form.field
предполагается иметь, например, помимоvalue
? Без дополнительных.value
вычислений возможности включали бы:class Form(object): ... def __getattr__(self, name): return self.data[name]
и
class Form(object): ... @property def data(self): return self.__dict__
. Наличие
.value
предполагает выбор первой формы, а также вид -useless wrapper:class KouWrap(object): def __init__(self, value): self.value = value class Form(object): ... def __getattr__(self, name): return KouWrap(self.data[name])
Если присваивания такие
form.field.value = 23
также должны установить запись вform.data
, тогда обертка должна стать более сложной, а не все это бесполезно:class MciWrap(object): def __init__(self, data, k): self._data = data self._k = k @property def value(self): return self._data[self._k] @value.setter def value(self, v) self._data[self._k] = v class Form(object): ... def __getattr__(self, name): return MciWrap(self.data, name)
Последний пример примерно такой же близкий, как и в Python, к понятию «указатель», как вам кажется, - но важно понять, что такое тонкости могут работать только с индексированием и / или декорированными именами , никогда с именами баров, как вы изначально задавали!
Существует CSS Сетки Yahoo, который может сделать все виды вещей.
, Но помните: CSS НЕ ЯВЛЯЕТСЯ РЕЛИГИЕЙ . При сохранении часов при помощи таблиц вместо css сделайте так.
Один из угловых случаев я никогда не мог составлять свой ум о, формы. Я хотел бы сделать это в css, но это именно так намного более сложно, чем таблицы.
Вы могли даже утверждать, что формы являются таблицами, в этом у них есть заголовки (маркировки) и данные (поля ввода).
В Великобритании и в США существует законное требование для одобрения разметок CSS по Таблицам. Оба Раздела 508 (США) и закон о Дискриминации Нетрудоспособности (Великобритания) покрывают стандарты доступности для пользователей с ограниченным видением.
В Великобритании законодательство расширяется, насколько на самом деле сделать его недопустимым для коммерческого создания сайта, который препятствует способности слабовидящего пользователя таким же образом, что это теперь недопустимо для имения магазина с шагом для ввода его и никакой способ для пользователя инвалидного кресла войти - по общему признанию еще не было никакого судебного преследования по доступности веб-сайта. Однако я всегда шел бы с CSS, поскольку это означает, что Ваш дизайн сайта настолько легче поддержать в дальнейшей перспективе.
время Инвестирования в изучении CSS (я использовал школы W3C и.Net Журнал http://www.netmag.co.uk ) окупится.
По-моему, предвзятость должна выступить за CSS по IE6 - т.е. если не будет безумно серьезное основание (например, Ваш сайт только предназначен для людей, использующих IE6, который был бы странный ), лучше 'отчуждать' людей, использующих IE6, а не людей с плохим видением и/или автоматизированными агентами пользователя. Использование IE6 уменьшается; последняя группа увеличивается численно. Даже если Ваш сайт не будет выглядеть прекрасным в IE6, для тех пользователей, вероятно, будет легко считать его, чем основанное на таблице расположение будет для тех, кто не видит его.
Это - очень общий вопрос, таким образом, трудно ответить специфическими особенностями. Две книги, которые являются превосходными ресурсами:
, Если только необходимо провести час, разрабатывая полное расположение сайта, это плохо не идет.
CSS не может быть религией, но это - как браузеры интерпретируют HTML для расположения. Нравится или нет, все современное использование браузеров (некоторая версия) модели поля W3C. Продолжать полагаться на таблицы, продолжают полагаться на методологию, которая является просто неправильной в глазах людей, которые разрабатывают веб-технологию рендеринга.
я знаю, что CSS может казаться ужасно сложным время от времени, но я полагаю, что это - необходимость в этот день, и возраст (доверяйте мне, Ваши клиенты собираются хотеть его).
, Если Вы не чувствуете себя комфортно, не торопясь действительно, изучают CSS (таким образом, Вам требуются секунды или минуты для расположения элементов... не час), тогда необходимо передать разметку кому-то, кто знает, действительно знает фронтенд.
Да, существует много проблем с текущими реализациями браузера CSS, но ничто столь решительное, что необходимо когда-либо чувствовать потребность возвратиться к основанному на таблице расположению. Просто сядьте и не торопитесь, чтобы узнать, что это, как Вы было бы любой другой язык или платформа.
лучший ссылочный ресурс онлайн, который я нашел, является этим: http://reference.sitepoint.com/css
, Но не могло бы повредить смотреть на книгу как Разработка С веб-стандартами , который имеет большое значение в помощи Вам понять, почему этот материал важен.
Я также думал, что Проект был большим, пока я не видел YAML (еще одно Многостолбцовое Расположение). Существует инструмент разработчика онлайн , который является фантастическим. Я могу получить прохладно выглядящее многостолбцовое расположение в течение 5 минут
Это может быть бесполезно, но я так или иначе не понимаю всех этих проблем, связанных с CSS. Если бы газетный разработчик попытался бы встроить фильм в страницу рекламы, все согласились бы, что он является немного сумасшедшим. Но все еще те те же люди сосна после разметок на три столбца в HTML. HTML просто не склонен обработать этот вид расположения хорошо в данный момент. Кроме того, многостолбцовые разметки являются обычно не действительно подходящими для чтения на компьютерных мониторах. Нет ли достаточно жизнеспособных альтернатив?
И между прочим, даже таблицы не предлагают хороший способ реализовать быстрое расположение столбца, таким образом, это не причина вообще для обращения к таким взломам. Принятие промежуточного современного браузера (т.е.>. MSIE 6), таблицы не предлагают преимуществ перед чистым HTML + CSS, о котором я знаю.
Я просто использовал бы таблицу.
, По моему опыту, с помощью таблицы для расположения будет работать, то же во всех браузерах и CSS не будет (особенно, при попытке поддерживать IE6). Это просто не стоит часов и часов кодирования, чтобы заставить расположение работать в CSS, когда это может быть сделано через 10 минут с помощью таблицы.
другое преимущество для использования таблиц состоит в том, что Ваше расположение может очень легко динамично измерить себя к содержанию. Попытка сделать это с CSS является огромным кошмаром.
Я нахожу, что существует много ограничений к CSS, которые просто, кажется, подсказывают, что разработчики спецификации не делают веб-сайты для жизни.
HTML-таблицы Использования, если Вы не можете сделать этого легкий в CSS.
Однако некоторые платформы действительно помогают и это всегда более хороший сделать в CSS, если можно управлять им.
Вы могли бы быть в состоянии найти некоторое вдохновение здесь: http://blog.html.it/layoutgala/
Список А Независимо является большой ссылкой для использования семантического HTML, , статья Holy Grail является, вероятно, одним из лучших примеров. Кроме того, проверьте CSS Zen-Garden для некоторого вдохновения по теме или прочитайте превосходную книгу Dave Shea "Дзэн CSS Дизайн".
Вы используете CSS для расположения, потому что не только он, семантически исправляют, но и потому что таблицы имеют несколько недостатков.
Таблицы ужасны для доступности, потому что они повреждают почти все программы экранного доступа, который в свою очередь дает слабовидящую бесполезную информацию из-за способа, которым читаются таблицы.
Они также представляют намного медленнее, чем их дубликаты CSS. Таблицы должны быть оттянуты дважды, однажды для расположения, и снова для содержания. Это может означать что, если у Вас есть удаленное изображение или два на сервере с медленным соединением, которое не представит Ваше ВСЕ РАСПОЛОЖЕНИЕ.
Вы использовали бы массив для хранения словаря, когда у Вас есть hashmap? Нет. И Вы не должны использовать таблицу, когда существует что-то там, которое работает лучше.