Как централизованно выровнять плавание: оставленное навигационное меню ул./лития с CSS?

Все переменные / свойства должны быть по умолчанию readonly / final.

Аргументация немного аналогична аргументу sealed для классов, выдвинутому Джоном. Одна сущность в программе должна иметь одну работу и только одну работу. В частности, для большинства переменных и свойств не имеет никакого смысла когда-либо менять значение. Есть в основном два исключения.

  1. Петлевые переменные. Но потом я утверждаю, что переменная вообще не меняет значения. Скорее, он выходит из области видимости в конце цикла и повторно создается в следующем ходу. Следовательно, неизменяемость будет хорошо работать с переменными цикла, и каждый, кто пытается вручную изменить значение переменной цикла, должен отправиться прямо в ад.

  2. Аккумуляторы. Например, представьте случай суммирования значений в массиве или даже в списке / строке, которые накапливают некоторую информацию о чем-то еще.

    1111 Сегодня есть лучшие средства для достижения той же цели. Функциональные языки имеют функции высшего порядка, Python имеет понимание списка, а .NET имеет LINQ. Во всех этих случаях нет необходимости в изменяемом аккумуляторе / держателе результата.

    Рассмотрим частный случай конкатенации строк. Во многих средах (.NET, Java) строки на самом деле являются неизменяемыми. Зачем тогда вообще разрешать присваивание строковой переменной? Намного лучше использовать класс строителя (то есть a StringBuilder) все время.

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

26
задан lin 30 May 2015 в 12:42
поделиться

4 ответа

Задайте ширину ul .navigation и используйте margin: 0 auto;

.navigation ul 
{
  list-style: none;
  padding: 0;
  width: 400px;
  margin: 0 auto;
}
21
ответ дан 28 November 2019 в 06:03
поделиться

Итак, чтобы использовать margin: 0 auto для чего-либо, он должен иметь определенную ширину. Вероятно, лучший обходной путь:

ul li {
  display: inline;
  list-style-type: none;
}
ul {
  text-align:center;
}
13
ответ дан 28 November 2019 в 06:03
поделиться

Вы можете установить

  • как display: inline , затем установить text-align: center на
      . Таким образом вы можете удалить float: left из элементов списка, и вам не нужно иметь фиксированную ширину для панели навигации, как если бы вы использовали margin: 0 auto ].

      <html>
        <head>
          <style>
            ul { 
              list-style: none;
              text-align: center;
            }
      
            li {
              display: inline;
              margin: 0 1.15em;
            }
          </style>
        </head>
      
        <body>
          <ul>
            <li>Option 1</li>
            <li>Option 2</li>
            <li>Option 3</li>
          </ul>
        </body>
      </html>
      
  • 2
    ответ дан 28 November 2019 в 06:03
    поделиться
    67
    ответ дан 28 November 2019 в 06:03
    поделиться