Изменение порядка элементов с помощью CSS Grid

Документация неясно, как это сделать, но этот источник выглядит следующим образом:

def add_index(table_name, column_name, options = {})
  index_name, index_type, index_columns = add_index_options(table_name, column_name, options)
  execute "CREATE #{index_type} INDEX #{quote_column_name(index_name)} ON #{quote_table_name(table_name)} (#{index_columns})"
end

Итак, если ваша [quote_column_name в вашей базе данных является реализацией по умолчанию (которая ничего не делает), тогда это может сработать:

add_index "users", ['lower(email)'], :name => "index_users_on_lower_email_index", :unique => true

Вы замечаете, что вы пробовали этот, но он не работал (добавив, что к вашему вопросу может быть хорошей идеей). Похоже, ActiveRecord просто не понимает индексы по вычисленному значению. Я могу подумать об уродливом взломе, который будет выполнен, но он уродлив:

  1. Добавьте столбец email_lc.
  2. Добавьте before_validation или before_save
  3. Поместите свой уникальный индекс на email_lc.

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

0
задан Michael_B 17 January 2019 в 20:15
поделиться

1 ответ

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

Линейное размещение

.container {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 50px;
  grid-gap: .5em;
  padding: .5em;
  border: 1px solid black;
}

@media ( max-width: 600px) {
  .container {
    grid-template-columns: 1fr;
    grid-template-rows: 50px 50px;
  }
  #b {
    grid-row: 1;
  }
}

/* non-essential decorative styles */
#a     { background-color: lightgreen; }
#b     { background-color: orange; }
#a, #b { display: flex; align-items: center; justify-content: center; font-size: 1.5em; }
<div class="container">
  <div id="a">A</div>
  <div id="b">B</div>
</div>

[ 117] jsFiddle demo


grid-template-areas

.container {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 50px;
  grid-gap: .5em;
  padding: .5em;
  border: 1px solid black;
  grid-template-areas: " a b ";
}

#a { grid-area: a; }
#b { grid-area: b; }

@media ( max-width: 600px) {
  .container {
    grid-template-areas: " b " " a ";
    grid-template-columns: 1fr;
    grid-template-rows: 50px 50px;
  }
}

/* non-essential decorative styles */
#a     { background-color: lightgreen; }
#b     { background-color: orange; }
#a, #b { display: flex; align-items: center; justify-content: center; font-size: 1.5em; }
<div class="container">
  <div id="a">A</div>
  <div id="b">B</div>
</div>
[ 1127] [1112]

jsFiddle demo

0
ответ дан Michael_B 17 January 2019 в 20:15
поделиться