回答編集履歴

2

修正

2020/04/27 03:50

投稿

s8_chu
s8_chu

スコア14731

test CHANGED
@@ -360,7 +360,7 @@
360
360
 
361
361
 
362
362
 
363
- `#navTgl` が `.label-wrap` 内にあるため、一般兄弟結合子による選択が行えないためです。`#navTgl` が `.content` と兄弟要素になるようにすることで問題は解決します ([動作確認用リンク](https://jsfiddle.net/2jmqy9nk/))。
363
+ `#navTgl` が `.label-wrap` 内にあ、一般兄弟結合子による選択が行えないためです。`#navTgl` が `.content` と兄弟要素になるようにすることで問題は解決します ([動作確認用リンク](https://jsfiddle.net/2jmqy9nk/))。
364
364
 
365
365
 
366
366
 

1

追記

2020/04/27 03:50

投稿

s8_chu
s8_chu

スコア14731

test CHANGED
@@ -1,3 +1,7 @@
1
+ > ・ドロワーメニューのボタン用に、FontAwesomeのアイコンを二つ(横並びに配置)指定し表示させたいが、一つしか表示されない。
2
+
3
+
4
+
1
5
  `.icon` ではなく `.icon::before` ではないでしょうか ([動作確認用リンク](https://jsfiddle.net/pgytvjuk/))。
2
6
 
3
7
 
@@ -345,3 +349,361 @@
345
349
  </html>
346
350
 
347
351
  ```
352
+
353
+
354
+
355
+ ---
356
+
357
+
358
+
359
+ > ・上記のアイコンもしくはその隣のボタンを押すと上からドロワーメニューを実現させるため、:chekedや:before:afterを使って動きを繋げたがメニューは出てこない。
360
+
361
+
362
+
363
+ `#navTgl` が `.label-wrap` 内にあるため、一般兄弟結合子による選択が行えないためです。`#navTgl` が `.content` と兄弟要素になるようにすることで問題は解決します ([動作確認用リンク](https://jsfiddle.net/2jmqy9nk/))。
364
+
365
+
366
+
367
+ ```CSS
368
+
369
+ <!DOCTYPE html>
370
+
371
+ <html lang="ja">
372
+
373
+
374
+
375
+ <head>
376
+
377
+ <meta charset="UTF-8">
378
+
379
+ <title>タイトル</title>
380
+
381
+ <style>
382
+
383
+ /* ++++ 開閉ボタン ++++ */
384
+
385
+ #navTgl {
386
+
387
+ display: none;
388
+
389
+ }
390
+
391
+
392
+
393
+ .label-wrap {
394
+
395
+ position: relative;
396
+
397
+ }
398
+
399
+
400
+
401
+ .label-wrap label {
402
+
403
+ cursor: pointer;
404
+
405
+ display: flex;
406
+
407
+ flex-direction: row;
408
+
409
+ z-index: 100;
410
+
411
+ }
412
+
413
+
414
+
415
+ .icon::before {
416
+
417
+ content: '\ユニコード';
418
+
419
+ width: 25px;
420
+
421
+ height: 25px;
422
+
423
+ position: absolute;
424
+
425
+ top: 15px;
426
+
427
+ left: 30px;
428
+
429
+ }
430
+
431
+
432
+
433
+ .btn {
434
+
435
+ z-index: 1000;
436
+
437
+ transition: background .5s, transform .5s cubic-bezier(0.76, 0.52, 0.29, 1.25);
438
+
439
+ color: #fff;
440
+
441
+ position: absolute;
442
+
443
+ top: 15px;
444
+
445
+ left: 50px;
446
+
447
+ transform: translate();
448
+
449
+ }
450
+
451
+
452
+
453
+ .btn li i {
454
+
455
+ position: absolute;
456
+
457
+ top: 16px;
458
+
459
+ left: 12px;
460
+
461
+ font-size: 18px;
462
+
463
+ color: #595959;
464
+
465
+ -webkit-transition: all 0.4s ease;
466
+
467
+ -o-transition: all 0.4s ease;
468
+
469
+ transition: all 0.4s ease;
470
+
471
+ }
472
+
473
+
474
+
475
+ .icon,
476
+
477
+ .btn:before,
478
+
479
+ .btn:after {
480
+
481
+ display: inline-block;
482
+
483
+ margin-right: .5em;
484
+
485
+ font-family: 'Font Awesome 5 Free';
486
+
487
+ font-weight: 900;
488
+
489
+ }
490
+
491
+
492
+
493
+
494
+
495
+ #navTgl:checked~.icon:after {
496
+
497
+ color: #0e898f;
498
+
499
+ }
500
+
501
+
502
+
503
+ .btn:before {
504
+
505
+ content: "\f078";
506
+
507
+ }
508
+
509
+
510
+
511
+ .btn:after {
512
+
513
+ content: "\f077";
514
+
515
+ }
516
+
517
+
518
+
519
+ .btn {
520
+
521
+ -webkit-transform: rotate(-180deg);
522
+
523
+ -ms-transform: rotate(-180deg);
524
+
525
+ -o-transform: rotate(-180deg);
526
+
527
+ transform: rotate(-180deg);
528
+
529
+ color: #fff;
530
+
531
+ }
532
+
533
+
534
+
535
+ #navTgl~.btn:before {
536
+
537
+ display: block;
538
+
539
+ }
540
+
541
+
542
+
543
+ #navTgl~.btn:after {
544
+
545
+ display: none;
546
+
547
+ }
548
+
549
+
550
+
551
+ #navTgl:checked~.btn:before {
552
+
553
+ display: none;
554
+
555
+ }
556
+
557
+
558
+
559
+ #navTgl:checked~.btn:after {
560
+
561
+ display: block;
562
+
563
+ color: #0e898f;
564
+
565
+ }
566
+
567
+
568
+
569
+
570
+
571
+
572
+
573
+ /* ++++ ドロワーメニュー ++++ */
574
+
575
+ .content {
576
+
577
+ z-index: 1000;
578
+
579
+ position: fixed;
580
+
581
+ overflow: auto;
582
+
583
+ top: -200px;
584
+
585
+ left: 0;
586
+
587
+ width: 100%;
588
+
589
+ height: 100%;
590
+
591
+ padding: 6%;
592
+
593
+ margin: 0;
594
+
595
+ box-sizing: border-box;
596
+
597
+ transform: translateY(-100%);
598
+
599
+ transition: transform .5s cubic-bezier(0.33, 1.01, 0.33, 0.97);
600
+
601
+ background-color: #fff;
602
+
603
+ }
604
+
605
+
606
+
607
+ .btn:checked+.content {
608
+
609
+ top: 200px;
610
+
611
+ }
612
+
613
+
614
+
615
+ #navTgl~.content {
616
+
617
+ transform: translate(0, 100px);
618
+
619
+ transition: transform 0.3s ease-in-out;
620
+
621
+ }
622
+
623
+
624
+
625
+ #navTgl:checked~.content {
626
+
627
+ transform: none;
628
+
629
+ }
630
+
631
+
632
+
633
+ #main .mainimg {
634
+
635
+ background-image: url(images/photo1.jpg);
636
+
637
+ background-size: cover;
638
+
639
+ box-shadow: 0 -90px 25px 30px rgba(0, 0, 0, .3) inset;
640
+
641
+ height: 240px;
642
+
643
+ margin-top: 0;
644
+
645
+ }
646
+
647
+
648
+
649
+ </style>
650
+
651
+ </head>
652
+
653
+
654
+
655
+
656
+
657
+ <body>
658
+
659
+ <div class="label-wrap">
660
+
661
+ <!--ボタンのスイッチ----->
662
+
663
+ <label for="navTgl" class="icon"></label>
664
+
665
+ <!---アイコンボタン(.btnと同じ開閉ボタン)--->
666
+
667
+ <label for="navTgl" class="btn">
668
+
669
+ <!---ドロワーメニュー開閉ボタン--->
670
+
671
+ </label>
672
+
673
+ </div>
674
+
675
+ <input type="checkbox" id="navTgl">
676
+
677
+
678
+
679
+ <nav class="content">
680
+
681
+ <ul>
682
+
683
+ <li>...</li>
684
+
685
+ <li>...</li>
686
+
687
+ <li>...</li>
688
+
689
+ <li>...</li>
690
+
691
+ </ul>
692
+
693
+ </nav>
694
+
695
+
696
+
697
+ <div id="main">
698
+
699
+ <div class="mainimg"></div>
700
+
701
+ </div>
702
+
703
+ </body>
704
+
705
+
706
+
707
+ </html>
708
+
709
+ ```