Anki CSS/HTML выравнивается по вертикали по низу/центру/верху

Я редактирую шаблон колоды Anki, в котором используются HTML и CSS. То, что я хотел бы сделать здесь, находится на лицевой стороне, вертикально выровняв японский иероглиф посередине, а подсказку по низу. Я попытался вручную расставить интервалы с помощью <br>, но тогда он не работает в окнах с другим разрешением (и это просто грязное решение) Наглядный пример.

На обратной стороне я хотел бы, чтобы диаграмма штрихов всегда привязывалась к верху, японский иероглиф с ключевым словом и мнемоникой посередине, а остальные — к низу. Если бы я попытался расставить это с помощью <br>, я бы получил ту же проблему, что и на главной странице, плюс мнемоника иногда составляет 1 строку, но также может быть 5+ строк, поэтому ее нужно будет динамически выравнивать, чтобы работать, даже если размер окна был всегда один и тот же Назад пример со стрелками.

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

Вот код для фронта

<div class="front" lang="ja">


<span class="large japanese">{{kanji}}</span>

<br>
<hr>


{{hint:Memory palace}}
back

<div class="back" lang="ja">
{{strokeDiagram}}<br> <br>
	<hr> 
	<span class="medium"><a href="http://jisho.org/kanji/details/{{kanji}}">{{keyword}}</a></span>
	<br/><br/>
	
<span class="large japanese">{{kanji}}</span>

<br> 
<span class="medium">{{myStory}}</span> 	<br><hr> 
<span class="tiny"> Memory palace: {{Memory palace}}</span>


<span class="tiny"> &nbsp; Frame: {{frameNoV6}} &nbsp; Strokes: {{strokeCount}} &nbsp; &mdash; &nbsp; Jouyou Grade: {{jouYou}} &nbsp; JLPT: {{jlpt}}</span><br/>

<!-- Uncomment for Heisig Story          
<hr>
	<span class="medium">{{heisigStory}}</span>
	{{#heisigComment}}<br/><br/><span class="small">{{heisigComment}}</span>{{/heisigComment}}
-->

<!-- Uncomment for koohi Story
<hr/>
	<span class="medium">{{koohiiStory1}}</span>

-->

<hr/>
 <br> <br>
<!-- Uncomment for On-Yomi and Kun-Yomi
	<span class="small">On-Yomi: <span class="medium japanese">{{onYomi}}</span> &nbsp; Kun-Yomi: <span class="medium japanese">{{kunYomi}}</span></span><br/>
-->
<span class="tiny"><a href="http://kanji.koohii.com/study/kanji/{{kanji}}">Constituents:</a> {{constituent}}</span><br/><br/>
	{{#readingExamples}}<span class="tiny">Examples: <span class="japanese">{{readingExamples}}</span></span>{{/readingExamples}}
</div>
and the styling,

div.front, div.back {
	text-align: center;
	font-family: sans-serif;
	font-size: 16px; /* line height is based on this size in Anki for some reason, so start with the smallest size used */

}


span.tiny {font-size: 16px;}
span.small {font-size: 24px;}
span.medium {font-size: 32px;}
span.large {font-size: 96px;}
span.italic {font-style: italic;}

.win .japanese {font-family: "Meiryo", "MS Mincho";}
.mac .japanese {font-family: "Hiragino Mincho Pro";}
.linux .japanese {font-family: "Kochi Mincho";}
.mobile .japanese {font-family: "Motoya L Cedar", "Motoya L Maru", "DroidSansJapanese", "Hiragino Mincho ProN";}


person copy    schedule 07.04.2018    source источник


Ответы (1)


Фронт

div.front,
div.back {
  width: 100%;
  text-align: center;
  font-family: sans-serif;
  font-size: 16px;
  /* line height is based on this size in Anki for some reason, so start with the smallest size used */
}

span.tiny {
  font-size: 16px;
}

span.small {
  font-size: 24px;
}

span.medium {
  font-size: 32px;
}

span.large {
  font-size: 96px;
}

span.italic {
  font-style: italic;
}

.win .japanese {
  font-family: "Meiryo", "MS Mincho";
}

.mac .japanese {
  font-family: "Hiragino Mincho Pro";
}

.linux .japanese {
  font-family: "Kochi Mincho";
}

.mobile .japanese {
  font-family: "Motoya L Cedar", "Motoya L Maru", "DroidSansJapanese", "Hiragino Mincho ProN";
}


/* Positional */

.bottom {
  display: block;
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
}

.center {
  display: block;
  position: absolute;
  left: 0;
  right: 0;
  /* I want a better way to do the below! */
  top: 50%;
  transform: translateY(-50%);
}

.top {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
}
<div class="front" lang="ja">


  <span class="large japanese center">{{kanji}}</span>

  <hr>


  <span class="bottom">{{hint:Memory palace}}</span>

Обратите внимание, что <hr> не имеет стиля.

Назад

div.front,
div.back {
  width: 100%;
  text-align: center;
  font-family: sans-serif;
  font-size: 16px;
  /* line height is based on this size in Anki for some reason, so start with the smallest size used */
}

span.tiny {
  font-size: 16px;
}

span.small {
  font-size: 24px;
}

span.medium {
  font-size: 32px;
}

span.large {
  font-size: 96px;
}

span.italic {
  font-style: italic;
}

.win .japanese {
  font-family: "Meiryo", "MS Mincho";
}

.mac .japanese {
  font-family: "Hiragino Mincho Pro";
}

.linux .japanese {
  font-family: "Kochi Mincho";
}

.mobile .japanese {
  font-family: "Motoya L Cedar", "Motoya L Maru", "DroidSansJapanese", "Hiragino Mincho ProN";
}


/* Positional */

.bottom {
  display: block;
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
}

.center {
  display: block;
  position: absolute;
  left: 0;
  right: 0;
  /* I want a better way to do the below! */
  top: 50%;
  transform: translateY(-50%);
}

.top {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
}
<div class="back" lang="ja">
  <div class="top">{{strokeDiagram}}</div>
  <hr>
  <div class="center"><span class="medium"><a href="http://jisho.org/kanji/details/{{kanji}}">{{keyword}}</a></span>

    <span class="large japanese">{{kanji}}</span>
  </div>

  <div class="bottom">
    <span class="medium">{{myStory}}</span> <br>
    <hr>
    <span class="tiny"> Memory palace: {{Memory palace}}</span>


    <span class="tiny"> &nbsp; Frame: {{frameNoV6}} &nbsp; Strokes: {{strokeCount}} &nbsp; &mdash; &nbsp; Jouyou Grade: {{jouYou}} &nbsp; JLPT: {{jlpt}}</span><br/>

    <!-- Uncomment for Heisig Story          
<hr>
	<span class="medium">{{heisigStory}}</span>
	{{#heisigComment}}<br/><br/><span class="small">{{heisigComment}}</span>{{/heisigComment}}
-->

    <!-- Uncomment for koohi Story
<hr/>
	<span class="medium">{{koohiiStory1}}</span>

-->

    <hr/>
    <br> <br>
    <!-- Uncomment for On-Yomi and Kun-Yomi
	<span class="small">On-Yomi: <span class="medium japanese">{{onYomi}}</span> &nbsp; Kun-Yomi: <span class="medium japanese">{{kunYomi}}</span></span><br/>
-->
    <span class="tiny"><a href="http://kanji.koohii.com/study/kanji/{{kanji}}">Constituents:</a> {{constituent}}</span><br/><br/> {{#readingExamples}}
    <span class="tiny">Examples: <span class="japanese">{{readingExamples}}</span></span>{{/readingExamples}}
  </div>
</div>

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

person wizzwizz4    schedule 07.04.2018
comment
Спасибо за ответ, подсказка находится внизу, что приятно, я просто не могу заставить японский язык отображаться вверху, а также центрироваться посередине по горизонтали. Также не стесняйтесь изменять HTML, если это помогает (если я правильно вас понял) - person copy; 07.04.2018
comment
@AfroSamuraí Ты говоришь о спине? Я делал только передние. В настоящее время я использую устройство, которое не поддерживает фрагменты стека или Anki, поэтому я не могу протестировать создание новой версии. - person wizzwizz4; 07.04.2018
comment
о, это мой плохой, я, возможно, плохо сформулировал это в своем вопросе. Подсказка внизу идеальна, я просто хотел, чтобы японский иероглиф оставался вверху или посередине (вертикально). Из вашего ответа я понял, что вы, вероятно, могли бы сделать position: absolute; top: 0 и создать еще один класс или что-то в этом роде. - person copy; 07.04.2018
comment
@AfroSamuraí Я думал, что он остался посередине... Оставаться на вершине легко; это то же самое, что и нижнее, но изменено так, как вы ожидаете. Я посмотрю, что я могу сделать по этому поводу через 8-14 часов. - person wizzwizz4; 07.04.2018
comment
@AfroSamuraí Это нормально? - person wizzwizz4; 08.04.2018