2013-11-26 6 views
0

У меня есть этот странный сценарий, где я перемещаю код между двумя серверами. На исходном сервере все выглядело нормально, однако на втором сервере разрывается CSS. Когда я просматривал код, кажется, что css-стили/классы и html-копии имеют разные оболочки, и они тоже меняются для одного и того же класса, поэтому, например, html имеет class="main_menu", а css - .Main_Menu.Силы css селекторов нечувствительны к регистру

Таким образом, очевидно, что он должен сломаться, однако на исходном сервере кажется, что корпус был проигнорирован и по этой причине все работало правильно. Итак, любая идея, как это было достигнуто?

ответ

2

Селекторы CSS уже не учитывают регистр.

Что нужно знать, это имена классов HTML, так как они чувствительны к регистру.

Для получения более подробного объяснения см. this question.


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

  1. Изменить каждый HTML класс включают новые CSS селекторы
  2. Выполнить всю таблицу стилей и HTML правила посредством метода toLowercase() некоторого вида.

Оба этих будет решить вашу проблему, но ни является очень хорошим решения.

Мораль истории состоит в том, чтобы использовать один случай и придерживаться его. Нет смысла двигаться вперед и назад.

+0

Это проблема, поскольку, как я уже упоминал, исходный сервер действует так, как будто он игнорирует регистр даже для классов html и идентификаторов – Bluemagica

+0

Спасибо за идею, и решение, очевидно, будет работать, но то, что я действительно хотел бы узнать, как это делалось на исходном сервере без каких-либо «бандаидов». Я думаю, могут ли быть какие-то модули или настройки Apache, которые могут это сделать? – Bluemagica

+0

Нет, нет. ** Ваш веб-браузер ** обрабатывает HTML-файл и таблицу стилей CSS на странице просмотра, * не на вашем сервере *. – David

Смежные вопросы