質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

2回答

5757閲覧

display:none;を使用している要素以外を数えたい

komasan

総合スコア13

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2019/04/03 02:20

編集2019/04/03 07:22

前提・実現したいこと

https://www.tam-tam.co.jp/tipsnote/javascript/post14636.html
上記ページの(3)を使用してソートを実装しました。
動的にリストの数が変わるので、数が増減してもレイアウト維持したいです。

リストにnth-childで装飾しているのですが、display:none;で隠した後も消す前の順番が適用されてしまいます。
display:none;で非表示にしたもの以外のliを数えて欲しいのですが・・。
下記ソースでいうと1とが非表示の時はnth-child(5n+1)を3に適用したいです。

https://teratail.com/questions/32777
こちらの質問が似ている感じだったので試してみましたがうまくいかず・・・。
なにか良い方法はないでしょうか。
よろしくお願いいたします。

(追記)下記のようなレイアウトをリストの増減があっても維持したいです。
イメージ説明

該当のソースコード

HTML

1<ul> 2<li class="is-hide">1</li> 3<li class="is-hide">2</li> 4<li>3</li> 5<li>4</li> 6<li>5</li> 7<li>6</li> 8<li>7</li> 9</ul>

CSS

1ul li{ 2width: calc(98%/2); 3float: left; 4} 5ul li:nth-child(5n+1){width: 60%;} 6ul li:nth-child(5n+2){width: 38%;} 7.is-hide{display:none;}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Lhankor_Mhy

2019/04/03 03:09

CSS だけでなく JavaScript も使わないと解決できないように思いますが、それでもよろしいですか?
komasan

2019/04/03 07:22 編集

大丈夫です!ありがとうございます。よろしくお願いします。
guest

回答2

0

ベストアンサー

下記のようなレイアウトをリストの増減があっても維持したいです。

の部分に絞って書くとこんなかんじでしょうか?
https://jsfiddle.net/liveasnotes/hbgcao2j/
jsfiddleのss

参考になりそうなリンク:

html

1<ul> 2 <li x>item-1</li> 3 <li>item-2</li> 4 <li>item-3</li> 5 <li x>item-4</li> 6 <li>item-5</li> 7 <li x>item-6</li> 8 <li>item-7</li> 9 <li x>item-8</li> 10 <li x>item-9</li> 11 <li x>item-10</li> 12 <li>item-11</li> 13 <li x>item-12</li> 14 <li>item-13</li> 15 <li x>item-14</li> 16 <li x>item-15</li> 17 <li x>item-16</li> 18 <li>item-17</li> 19 <li>item-18</li> 20 <li>item-19</li> 21 <li>item-20</li> 22 <li>item-21</li> 23 <li>item-22</li> 24 <li>item-23</li> 25</ul> 26

css

1*, 2*::before, 3*::after { 4 padding: 0; 5 margin: 0; 6 box-sizing: border-box; 7} 8 9body { 10 background: lemonchiffon; 11} 12 13ul { 14 display: grid; 15 grid-template-rows: repeat(auto-fit, 1fr 1fr 2fr); 16 grid-template-columns: 5fr 1fr 4fr; 17 list-style: none; 18 background: #fff; 19 width: 300px; 20 margin: 2em; 21 padding: 0 5px 5px 0; 22} 23 24li { 25 background: pink; 26 padding: 1em; 27 margin: 5px 0 0 5px; 28} 29 30li:nth-child(5n-4) { 31 grid-row: span 2; 32 grid-column: span 2; 33 height: 105px; /* marginの分を足している */ 34} 35 36li:nth-child(5n-3), 37li:nth-child(5n-2) { 38 grid-row: span 1; 39 grid-column: span 1; 40 height: 50px; 41} 42 43li:nth-child(5n-1) { 44 grid-row: span 2; 45 grid-column: span 1; 46 height: 105px; /* marginの分を足している */ 47} 48 49li:nth-child(5n) { 50 grid-row: span 2; 51 grid-column: span 2; 52 height: 105px; 53} 54

js

1let es = document.querySelectorAll("[x]"); 2 3es.forEach(e => {e.parentNode.removeChild(e)}); 4

投稿2019/04/03 15:38

liveasnotes

総合スコア1284

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

komasan

2019/04/04 00:28

回答ありがとうございます!! このような方法があるのですね!!大変勉強になりました。 参考にさせていただきます。ありがとうございます!!!
guest

0

CSSのnth-childでは同じクラスの中で何番目という数え方はできません

投稿2019/04/03 03:14

yambejp

総合スコア114779

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

komasan

2019/04/03 07:16

回答ありがとうございます。 勉強不足で申し訳ないのですが、レイアウト維持をしたい場合どのような方法があるでしょうか? ご教授頂ければ幸いです。。。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問