困ってしまい質問させていただきました。
jsやjQuery得意な方、よろしければお願い致します。不慣れなためもし失礼がありましたらご容赦ください。
タイトルの通りなのですが、
if( x軸のliが3つのとき ){
li:first-of-type から li:nth-of-type(3) までの
backgroundをそれぞれimage01.pngからimage03.pngに差し替える。
}
をどう書いてよいか解らずもう二日悩んでます。
なにかヒントになることでも、もちろん解答そのものでも歓迎ですのでどうかどなたか教えてください。よろしくお願い致します。
No.3ベストアンサー
- 回答日時:
スタイルを読む限り、以下の式が成り立つ場合にスタイルを変更すると見えます。
(縦幅 * 0.45) * 3 <= 横幅 * 0.8 < (縦幅 * 0.45) * 4
ならば CSS メディアクエリーの機能を活用して、
アスペクト比による振り分けが可能でしょう。
1.6875 <= 横幅/縦幅 < 2.25
CSS メディアクエリの構文にあわせて
16875/10000 <= アスペクト比 <= 22499/10000
<style>
ul li { background: #ccc; }
/* x軸 の li が3つのとき、最初の三つの背景を変更 */
@media (min-aspect-ratio: 16875/10000) and (max-aspect-ratio: 22499/10000) {
ul li:nth-child(-n+3) { background: red;}
}
</style>
参考:
https://developer.mozilla.org/ja/docs/Web/CSS/Me …
お返事が大変遅れてしまい申し訳ございません。
恥かしながら min-aspect-ratio という書き方をはじめて知りました。
勉強させていただきます。機智を分けてくださり感謝します。
No.2
- 回答日時:
たとえば
$(function(){
console.log($('li:nth-child(1)').offset().top);
console.log($('li:nth-child(2)').offset().top);
console.log($('li:nth-child(3)').offset().top);
console.log($('li:nth-child(4)').offset().top);
console.log($('li:nth-child(5)').offset().top);
console.log($('li:nth-child(6)').offset().top);
});
とすると、それぞれのliについて縦位置がわかります
3列だとすると
$('li:nth-child(1)').offset().top=$('li:nth-child(3)').offset().top
かつ
$('li:nth-child(1)').offset().top!=$('li:nth-child(4)').offset().top
ですね
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS 書籍を見つつサイト造りの練習をしているのですが、見た目が一致しません 2 2022/11/28 15:00
- JavaScript html5に変えるとスライドショーが消えてしまった。 3 2022/03/26 19:53
- HTML・CSS CSS のみのタブ切り替えについて 1 2023/01/11 16:47
- HTML・CSS HTML & CSS 縦ボックス内の文字の左右センタリング 3 2023/03/25 04:23
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- HTML・CSS CSSが上手く反映されないみたいです 2 2022/11/21 16:19
- HTML・CSS アコーディオンメニューが思うように動作しません。 1 2023/08/20 16:48
- Perl RSSにdiv,ul classを付けたいのですがどのようにつけるのかわからないです 2 2022/03/28 01:53
- HTML・CSS PCサイズで赤い画像2つと、青い画像2つがそれぞれ横に2つずつ並んでいるのですが、これをスマホサイズ 5 2022/04/11 12:01
- HTML・CSS ヘッダーの画像にメインエリアがかぶってしまいます 1 2022/11/28 14:06
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
jQueryで、リンクURLの一致を確...
-
【javascript で動的に a タグ...
-
【短い】1つだけ展開/表示/非表...
-
javascriptで教えてください。 ...
-
jQueryのeqで最後からn番目以降...
-
ネストされたチェックボックス...
-
JavaScriptのクッキーによるリ...
-
文字と数字が混在する要素のsor...
-
多階層ドロップダウンのスマホ...
-
どの<li><a> が押されたか判別...
-
javascriptでEnterキーをtabキ...
-
Jquery の slide.toggle で要素...
-
「jQuery」アコーディオンメニ...
-
Jqueryでリストのスクロール
-
javascriptで正規表現の検索が...
-
jquery ドロップダウンメニュー...
-
MAX関数を使ってからLEFT JOIN...
-
javascriptで毎月替わる画像
-
Slick.jsのオプションrtlについて
-
jQueryで同じクラス名のものを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
jqueryのsortableで一部ソート...
-
クリックした<a>タグのみにClas...
-
JQueryタブのアクティブ アン...
-
javascriptでEnterキーをtabキ...
-
「jQuery」アコーディオンメニ...
-
【jQuery】遅延実行(タイムラ...
-
ネストされたチェックボックス...
-
【javascript で動的に a タグ...
-
jquery ドロップダウンメニュー...
-
文字と数字が混在する要素のsor...
-
Jquery の slide.toggle で要素...
-
【jQuery】hoverしたn秒後にイ...
-
チェックボックスに入っている...
-
クリックで表示、非表示するメ...
-
同一ページ内で、任意の文字列...
-
オンマウスで画像ロールオーバ...
-
javascriptで、クリックしたら...
-
PHPでログインフォーム
-
<li>タグの順番を入れ替える方法
-
jQuery タブメニューへのダイ...
おすすめ情報
.flex {
display: flex;
}
ul {
flex-wrap: wrap;
justify-content: space-around;
margin: 0 auto;
width: 80vw;
}
li {
background: #ccc;
height: 25vmin;
list-style: none;
margin-top: 10vmin;
width: 45vmin;
}
li a {
align-items: center;
font-size: 1.5rem;
height: 100%;
justify-content: center;
}
<nav role="navigation" aria-label="メインメニュー">
<ul class="flex">
<li><a href="#01" class="flex">01</a></li>
<li><a href="#02" class="flex">02</a></li>
<li><a href="#03" class="flex">03</a></li>
<li><a href="#04" class="flex">04</a></li>
<li><a href="#05" class="flex">05</a></li>
<li><a href="#06" class="flex">06</a></li>
</ul>
</nav>