-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathRenTianNote.json
6817 lines (6803 loc) · 231 KB
/
RenTianNote.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
[
[
{ "title": "HTML🦴" },
{
"tag": "p",
"text": "HTML(Hypertext Markup Language),中文全名為「超文字標示語言」,是一種用來組織架構並呈現網頁內容的程式語言。網頁內容的組成可能包含了段落、清單、圖片或表格等。HTML 是一種基礎技術,常與 CSS、JavaScript 一起被眾多網站用於設計網頁、網頁應用程式以及行動應用程式的使用者介面。網頁瀏覽器可以讀取 HTML 檔案,並將其彩現成視覺化網頁。"
},
{
"tag": "h2",
"text": "基礎架構"
},
{
"tag": "p",
"text": "HTML相當於網頁的骨架。以下為HTML最簡易的結構,其中<head></head>標籤內放置網頁中不會被顯示的重要資訊;<body></body>內則放置顯示於頁面的物件;<script></script>內則放置JavaScript程式碼。"
},
{
"tag": "precode",
"text": "<!DOCTYPE html> <!-- 宣告瀏覽器要用什麼版本翻譯 -->\n<html>\n <head>\n <meta charset='UTF-8'> <!-- 以「UTF-8」萬國碼編碼 -->\n <meta name='viewport' content='width=device-width, initial-scale=1.0'> <!-- 要使用RWD響應式網頁的程式碼 -->\n <meta name='description' content='搜尋引擎上會呈列的引文'>\n <meta name='ketwords' content='搜尋引擎搜尋的字串(用空格隔開)'>\n \n <title>人天的網頁</title>\n \n <style>\n /*這裡放CSS*/ \n </style>\n \n </head>\n \n <body>\n \n <!--這裡放各種元素-->\n\n \n <script>\n // 這裡放JavaScript\n </script>\n </body>\n</html>"
},
{
"tag": "h2",
"text": "引入外部檔案"
},
{
"tag": "h3",
"text": "引入CSS"
},
{
"tag": "p",
"text": "將以下語句放入<meta></meta>則可匯入CSS,其中style.css是要匯入的檔名。"
},
{
"tag": "precode",
"text": "<link rel='stylesheet' href='style.css'>"
},
{
"tag": "h3",
"text": "引入JavaScript"
},
{
"tag": "p",
"text": "將以下語句放入<body></body>標籤內的最下方可以引入Js,其中js/all.js是要匯入的檔名。"
},
{
"tag": "precode",
"text": "<script src='js/all.js'></script>"
},
{
"tag": "h2",
"text": "常用的特殊字元"
},
{
"tag": "precode",
"text": "<!--程式碼寫在內文的換行是沒有作用的-->\n\n<br> <!--內文中的換行-->\n <!--內文中的半形空格-->"
},
{
"tag": "h2",
"text": "語意標籤(Semantic Elements)"
},
{
"tag": "p",
"text": "語意標籤與<div></div>標籤的功能相同,\n但能讓使用者或與人協作時能更加容易辨識區塊中所放的內容為何。使用語意標籤不僅讓網頁結構更具邏輯性,還能提升 SEO(搜尋引擎最佳化)、可存取性、可讀性,並且使程式碼更容易維護,符合現代 Web 開發的最佳實踐。"
},
{
"tag": "precode",
"text": "<header>放頁首、上方板塊、通常包含標題</header>"
},
{
"tag": "precode",
"text": "<nav>選單、導覽、常用於menu</nav>"
},
{
"tag": "precode",
"text": "<main>主要內容的區塊</main>"
},
{
"tag": "precode",
"text": "<aside>側欄、附加內容、廣告、非主要資訊</aside>"
},
{
"tag": "precode",
"text": "<article>文章內容</article>"
},
{
"tag": "precode",
"text": "<section>自訂的區塊,例如數篇摘要要組成的空間</section>"
},
{
"tag": "precode",
"text": "<mark>強調的內容區塊,像是螢光筆的部分</mark>"
},
{
"tag": "precode",
"text": "<time>顯示時間的區塊</time>"
},
{
"tag": "precode",
"text": "<details>定義可查看額外細節的部份</details>"
},
{
"tag": "precode",
"text": "<footer>頁尾,網頁最底部的區塊</footer>"
},
{
"tag": "h2",
"text": "錨點"
},
{
"tag": "p",
"text": "HTML中的錨點(Anchor)用法允許您在同一頁面內或不同頁面之間創建超連結,直接跳轉到指定的位置。這在長頁面或文檔中非常有用,可以快速導航到感興趣的部分。以下是HTML錨點的基本用法:"
},
{
"tag": "precode",
"text": "<!--使用id創建錨點-->\n<h2 id='section1'>第一節</h2>\n\n<!--使用a標籤創建錨點的超連結-->\n<a href='#section1'>跳轉到第一節</a>\n\n\n<!--跨頁面的跳轉-->\n<a href='page2.html#section1'>前往第二頁的第一節</a>"
},
{
"tag": "h2",
"text": "figure 圖片組"
},
{
"tag": "precode",
"text": "<figure>\n <img src='images/600x400/peach-flowers.jpg' width='600' alt='粉紅色的花'>\n <figcaption>圖片說明</figcaption>\n</figure>"
},
{
"tag": "h2",
"text": "table 表格"
},
{
"tag": "p",
"text": "以下是表格標籤所代表的意義:"
},
{
"tag": "precode",
"text": "<table> <!-- 定義整個表格 -->\n<tr> <!-- table row -->\n<th> <!-- table heading -->\n<td> <!-- table data -->"
},
{
"tag": "p",
"text": "<thead>標籤代表表頭,<tbody>代表表身,<tfoot>代表表尾。"
},
{
"tag": "precode",
"text": "<table>\n <thead>\n <tr>\n <th colspan=3 >國立故宮博物院</th> <!-- colspan=3 代表橫跨3欄位的意思 -->\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>所屬部門</th>\n <th>員額</th>\n <th>授權法源</th>\n </tr>\n </tbody>\n <tr>\n <td>行政院</td>\n <td>502人</td>\n <td>行政院故宮博物院組織法</td>\n </tr>\n <tfoot>\n \n </tfoot>\n</table>"
},
{
"tag": "img",
"text": "./img/1_表格範例.png"
},
{
"tag": "h2",
"text": "input 使用者輸入"
},
{
"tag": "p",
"text": "<input> 標籤是 HTML 中用來建立可互動的輸入欄位,用於讓用戶在表單中輸入資料。它是表單最常用的元素之一,並且可以透過不同的 type 屬性來定義多種類型的輸入欄位。"
},
{
"tag": "h3",
"text": "常見的屬性"
},
{
"tag": "b",
"text": "type"
},
{
"tag": "p",
"text": "定義輸入欄位的類型,如 text, password, email, number, checkbox, radio 等。"
},
{
"tag": "b",
"text": "name"
},
{
"tag": "p",
"text": "表單中用來標識該輸入欄位的名稱,表單提交時這個名稱將與輸入值一起發送。"
},
{
"tag": "b",
"text": "value"
},
{
"tag": "p",
"text": "定義輸入欄位的預設值。"
},
{
"tag": "b",
"text": "placeholder"
},
{
"tag": "p",
"text": "顯示在輸入欄位中的提示文字,當欄位為空時可見。"
},
{
"tag": "b",
"text": "required"
},
{
"tag": "p",
"text": "指定此輸入欄位在提交表單前必須填寫。"
},
{
"tag": "b",
"text": "disabled"
},
{
"tag": "p",
"text": "使輸入欄位無法被修改或選取。"
},
{
"tag": "b",
"text": "readonly"
},
{
"tag": "p",
"text": "讓欄位僅供讀取,但可被選中。"
},
{
"tag": "b",
"text": "autofocus"
},
{
"tag": "p",
"text": "當頁面載入時會直接選取在此input上。"
},
{
"tag": "b",
"text": "pattern🚧"
},
{
"tag": "p",
"text": "可以撰寫正規表達式以客製化表單應該正確輸入的內容。"
},
{
"tag": "p",
"text": "[範例與客製的反饋內容🚧...]"
},
{
"tag": "h3",
"text": "type的屬性值"
},
{
"tag": "b",
"text": "text"
},
{
"tag": "p",
"text": "單行文字輸入。"
},
{
"tag": "b",
"text": "password"
},
{
"tag": "p",
"text": "密碼輸入,輸入內容會以隱藏符號顯示。"
},
{
"tag": "b",
"text": "email"
},
{
"tag": "p",
"text": "電子郵件輸入,會自動驗證格式。"
},
{
"tag": "b",
"text": "number"
},
{
"tag": "p",
"text": "數字輸入,可以設置最小值和最大值。"
},
{
"tag": "precode",
"text": "<label for='quantity'>數量:</label>\n<input type='number' id='quantity' name='quantity' min='1' max='10' step='1' value='1'>\n\n<!--\nmin:最小值\nmax:最大值\nstep:控制數量每次增加或減少的量\nvalue:初始值\n-->"
},
{
"tag": "b",
"text": "range"
},
{
"tag": "p",
"text": "範圍控制項的UI,也可以設定以上number所提及的屬性。"
},
{
"tag": "b",
"text": "checkbox"
},
{
"tag": "p",
"text": "多選框,允許多個選項。"
},
{
"tag": "b",
"text": "radio"
},
{
"tag": "p",
"text": "單選按鈕,從多個選項中選擇一個。"
},
{
"tag": "b",
"text": "submit"
},
{
"tag": "p",
"text": "送出表單的按鈕。通常在<form></form>內部的button的預設行為。"
},
{
"tag": "h3",
"text": "datalist🚧"
},
{
"tag": "p",
"text": "HTML 中的 <datalist> 元素用來定義一組選項,供 <input> 元素使用。當用戶在輸入欄位中輸入時,會根據 <datalist> 提供的選項顯示建議列表,類似於自動完成功能。"
},
{
"tag": "h3",
"text": "details🚧"
},
{
"tag": "p",
"text": "<details> 是 HTML5 中的一個互動元素,用來顯示可展開/收合的內容區域,通常搭配 <summary> 元素一起使用。當用戶點擊 <summary> 標籤時,會顯示或隱藏內部的細節內容,這在顯示額外資訊、FAQ(常見問題)或提供更多詳細內容時非常實用。"
},
{
"tag": "precode",
"text": "<details>\n <summary>更多資訊</summary>\n <p>這裡是展開後的詳細內容。</p>\n</details>"
},
{
"tag": "h2",
"text": "form 表單🚧"
},
{
"tag": "p",
"text": "⚠️form中有設定name屬性的資料才會送到後端。"
},
{
"tag": "precode",
"text": "<form action='' method='get' > <!-- 寄送隱密資訊要用POST method='post' 不然預設都是'get' -->\n <label for='email'>帳號: </label>\n <input id='email' type='text' name='email' required> <!-- required代表必填否則無法提交 -->\n \n <br>\n <label for='passwords'>密碼: </label>\n <input id='passwords' type='text' name='passwords' required>\n \n <br>\n <button type='submit'>登入系統</button>\n</form>"
},
{
"tag": "img",
"text": "./img/2_表單範例.png"
},
{
"tag": "h3",
"text": "autocomplete"
},
{
"tag": "p",
"text": "HTML 中的 <form> 元素和 <input> 元素可以使用 autocomplete 屬性來控制是否讓瀏覽器自動填充表單。這個屬性會根據用戶以前輸入的資料提供建議,或者自動填入先前的數據。其可以應用於 <form> 標籤,控制整個表單的自動填充行為。也可以應用於 <input> 元素,控制單個輸入欄位的自動填充行為。"
},
{
"tag": "p",
"text": ""
},
{
"tag": "mark",
"text": "填在<form></form>上的情況"
},
{
"tag": "b",
"text": "autocomplete='on'"
},
{
"tag": "p",
"text": "允許瀏覽器自動填充表單(預設值)。"
},
{
"tag": "b",
"text": "autocomplete='off'"
},
{
"tag": "p",
"text": "禁止瀏覽器自動填充表單。"
},
{
"tag": "p",
"text": ""
},
{
"tag": "mark",
"text": "填在<input></input>上的情況"
},
{
"tag": "b",
"text": "name"
},
{
"tag": "p",
"text": "用戶的全名。"
},
{
"tag": "b",
"text": "email"
},
{
"tag": "p",
"text": "電子郵件地址。"
},
{
"tag": "b",
"text": "username"
},
{
"tag": "p",
"text": "用戶名。"
},
{
"tag": "b",
"text": "current-password"
},
{
"tag": "p",
"text": "目前的密碼。"
},
{
"tag": "b",
"text": "new-password"
},
{
"tag": "p",
"text": "新密碼。"
},
{
"tag": "b",
"text": "tel"
},
{
"tag": "p",
"text": "電話號碼。"
},
{
"tag": "b",
"text": "address-line1"
},
{
"tag": "b",
"text": "address-line2"
},
{
"tag": "p",
"text": "地址欄。"
},
{
"tag": "b",
"text": "postal-code"
},
{
"tag": "p",
"text": "郵政編碼。"
},
{
"tag": "h2",
"text": "contenteditable 允許編輯"
},
{
"tag": "p",
"text": "contenteditable 屬性可以讓 HTML 元素變成可編輯的區域,使用者可以直接在頁面上修改內容,有點類似<textarea>。以下是一個簡單的 contenteditable 範例。"
},
{
"tag": "precode",
"text": "<div class='editable' contenteditable='true'>\n 這是一個可編輯的區域,點擊後你可以直接修改這裡的文字。\n</div>"
},
{
"tag": "h2",
"text": "video 影片"
},
{
"tag": "p",
"text": "以下程式碼可以讓網頁播放影片,其中可以設定較多的<source>,當source來源取得不到時會往下取用可使用的來源播放。"
},
{
"tag": "precode",
"text": "<video autoplay muted poster='./images/09_laydown_scone.jpg' width='100%' loop controls controlslist='nodownload nofullscreen' disablepictureinpicture>\n <source src='./videos/video1.mp4' />\n <source src='./videos/video2.mp4' />\n <p>不支援影片播放</p>\n</video>\n\n<!-- \n以下為屬性的說明\n autoplay 自動播放\n muted 靜音\n poster 當影片不存在時可指定顯示的圖片\n loop 重複播放\n controls 影片控制項\n controlslist='nodownload nofullscreen' 不能下載以及不能全螢幕的設定\n disablepictureinpicture 不能子母畫面\n-->"
},
{
"tag": "h2",
"text": "檔案預覽🚧"
},
{
"tag": "p",
"text": ""
},
{
"tag": "p",
"text": ""
},
{
"tag": "p",
"text": ""
},
{
"tag": "p",
"text": ""
},
{
"tag": "p",
"text": ""
},
{
"tag": "p",
"text": ""
},
{
"tag": "p",
"text": ""
},
{
"tag": "p",
"text": ""
},
{
"tag": "p",
"text": ""
},
{
"tag": "p",
"text": ""
}
],
[
{ "title": "CSS🎨" },
{
"tag": "mark",
"text": "內容過於基礎 暫時停更"
},
{
"tag": "h2",
"text": "介紹"
},
{
"tag": "p",
"text": "CSS(階層式樣式表) 是一種用來設定網頁的樣式及佈局的語言。它能讓你在 HTML 文件中的元素上套用不同的頁面樣式,例如改變字體、顏色、尺寸、擺放位置、拆分為多欄,或是添加動畫效果和其他裝飾的特性。CSS 既非標準程式語言,也不是標記語言,而是一種風格頁面語言。透過 CSS,你可以為網頁元素指定不同的外觀和排版,使網頁更具吸引力且易於閱讀。"
},
{
"tag": "h2",
"text": "選擇器"
},
{
"tag": "b",
"text": "1. 通配符選擇器:使用「*」表示,選取頁面中所有元素,通常用於基本設定,例如設定字體或內外邊距。"
},
{
"tag": "b",
"text": "2. 元素(標籤)選擇器:選取某種元素的所有實例,例如 <p>、<h1>、<div> 等。"
},
{
"tag": "b",
"text": "3. 類別(Class)選擇器:根據元素的 Class 值選中某些元素,用於差異化樣式設定。"
},
{
"tag": "b",
"text": "4. ID 選擇器:根據元素的唯一 ID 值選中某個元素,每個 ID 在頁面中應該是唯一的。"
},
{
"tag": "precode",
"text": "selector {\n 屬性:屬性值;\n ...\n}"
},
{
"tag": "p",
"class": "yellow",
"text": "盡可能不要使用id選擇器去選取物件,因為其權重太高不容易被覆蓋,且因為id具有唯一性,CSS只能選取到一個物件,故並不方便使用。"
},
{
"tag": "mark",
"text": "MDN CSS 各種選擇器查詢"
},
{
"tag": "a",
"text": "https://developer.mozilla.org/zh-TW/docs/Glossary/CSS_Selector"
},
{
"tag": "p",
"text": ""
},
{
"tag": "mark",
"text": "CSS Diner | 選擇器小遊戲"
},
{
"tag": "a",
"text": "https://flukeout.github.io/"
},
{
"tag": "p",
"text": ""
},
{
"tag": "h3",
"text": "超連結選擇器"
},
{
"tag": "precode",
"text": "/*以下順序不可調換*/\n\na:link{ text-decorate:none; } /*定義預設的超連結樣式*/\na:visited{ color:red; } /*定義瀏覽過的超連結樣式*/\na:hover{ text-decoration:underline; color:green } /*定義滑鼠移至的超連結樣式*/\na:active{ color:yellow; } /*定義選取的超連結樣式*/"
},
{
"tag": "h2",
"text": "圓角 boreder-radius"
},
{
"tag": "p",
"text": "用於設定元素的邊框圓角。這個屬性可以讓元素的邊框從鋭角變成圓角,從而創建更柔和、更圓潤的視覺效果。"
},
{
"tag": "img",
"text": "img/css/01_border-radius-1.png"
},
{
"tag": "precode",
"text": ".border-radius-1{\n /* 全部設定 */\n border-radius: 20px;\n}\n.border-radius-2{\n /* 只設定某一個角 */\n border-bottom-left-radius: 30px;\n}\n.border-radius-3{\n /*可以設定4個值分別代表 左上 右上 右下 左下*/\n border-radius: 10px 20px 30px 40px;\n}\n.border-radius-4{\n /*可以設定3個值分別代表 左上 右上和左下 右下 */\n border-radius: 0 10px 40px;\n}\n.border-radius-5{\n /*可以設定成百分比*/\n border-radius: 0 100%;\n}\n.border-radius-6{\n /*50%就變成圓形*/\n border-radius: 50%;\n}\n.border-radius-7{\n /*分數型式會將圓角變為橢圓形*/\n border-radius: 10px/40px;\n}"
},
{
"tag": "h2",
"text": "區塊陰影 box-shadow"
},
{
"tag": "p",
"text": "用於為元素設置陰影效果。這個屬性可以添加陰影來增強視覺層次感和立體感。"
},
{
"tag": "precode",
"text": "box-shadow: [水平偏移] [垂直偏移] [模糊半徑] [擴散半徑] [顏色];"
},
{
"tag": "img",
"text": "img/css/02_box-shadow-1.png"
},
{
"tag": "precode",
"text": " .shadow1{\n /* x軸 y軸 暈開 顏色*/\n box-shadow: 10px 10px 10px #000;\n }\n .shadow2{\n box-shadow: -10px -10px 5px rgb(233, 36, 36);\n }\n .shadow3:hover{\n box-shadow: 0 0 20px rgb(131,7,7,0.7);\n }\n\n .shadow4{\n box-shadow: -10px -10px 5px 5px rgb(233, 36, 36);\n }\n .shadow5{\n box-shadow: 0px 0px 20px rgb(233, 36, 36) inset;\n }\n .shadow6{\n box-shadow: -10px 0 10px blue, 10px 0 10px green;\n }\n .shadow7:hover{\n box-shadow: -120px 0 0 red, 120px 0 0 blue, 0 -120px 0 orange, 0 120px 0 green;\n }\n\n .sun{\n border-radius: 50%;\n background: yellow;\n box-shadow: 0 0 30px orange inset, 0 0 10px red inset, 0 0 20px rgb(255, 153, 0);\n }"
},
{
"tag": "h2",
"text": "文字陰影 text-shadow"
},
{
"tag": "p",
"text": "用於為文字添加陰影效果。這個屬性可以設置陰影的偏移量、模糊半徑和顏色,從而讓文字看起來更具立體感和視覺效果。"
},
{
"tag": "precode",
"text": "text-shadow: [水平偏移] [垂直偏移] [模糊半徑] [顏色];"
},
{
"tag": "img",
"text": "img/css/03_text-shadow-1.png"
},
{
"tag": "precode",
"text": ".shadow1{\n text-shadow: 1px 1px 10px rgb(50, 144, 221);\n }\n.shadow2{\n /*老師推薦的好看字體*/\n color: #fff;\n background: gray;\n padding: 15px;\n }\n\n.shadow2:hover{\n /*可以設定好幾層,看起來更有層次*/\n text-shadow: 0 0 2px #fff ,0 0 3px orange, 0 0 10px rgb(255, 136, 0);\n }"
},
{
"tag": "h2",
"text": "邊框圖片 border-image"
},
{
"tag": "p",
"text": "用於將圖片作為元素的邊框。這個屬性提供了一種創建自定義邊框樣式的方法,允許你使用圖片來設置邊框的外觀。border-image 屬性結合了邊框圖片的來源、切片、寬度和填充等屬性。"
},
{
"tag": "precode",
"text": "border-image: [來源] [切片] / [寬度] / [填充] [平鋪模式];\n\n/*\n來源(source):圖片的 URL 或數據 URI,指定作為邊框的圖片。\n切片(slice):用於劃分圖片的區域,可以使用像素值或百分比。\n寬度(width):邊框的寬度。\n填充(outset):邊框超出內容區的距離。\n平鋪模式(repeat):圖片如何平鋪,可以是 stretch、repeat、round 或 space。\n*/"
},
{
"tag": "a",
"text": "https://www.minwt.com/webdesign-dev/css/6143.html"
},
{
"tag": "mark",
"text": "參考網站: 梅問題 | border-image"
},
{
"tag": "img",
"text": "img/css/04_border-image-1.png"
},
{
"tag": "h2",
"text": "背景 background"
},
{
"tag": "mark",
"text": "以下還未整理"
},
{
"tag": "precode",
"text": ".class_1{\n background-color: [屬性值]; /*設定的背景顏色*/\n background-image: none | url(背景圖片網址) ; /*控制背景來源*/\n background-attachment : [屬性值]; /*用於設定背景圖像的位置是在視口內固定,還是會隨著包含它的區塊滾動。這個屬性影響背景圖像的行為*/\n background-repeat:[屬性值] ; /*控制背景是否重複*/\n background-position: [x] [y]; /*可以設定非重複背景出現的位置*/\n background-size: [x] [y]; /*用於設定背景圖像的大小*/\n \n}\n\n/*\n🔔background-attachment 有三種屬性\n fixed:背景相對於視口固定,即使元素有滾動機制,背景也不會隨著元素的內容滾動。\n local:背景相對於元素的內容固定,如果元素有滾動機制,背景會隨著元素的內容滾動。\n scroll:背景相對於元素本身固定,不會隨著元素的內容滾動。\n\n🔔background-repeat\n repeat 重複\n no-repeat 不重複\n repeat-x X方向重複\n repeat-y y方向重複\n \n🔔background-size\n cover:這個值會拉伸或縮放背景圖片,以完全覆蓋背景區域。如果圖片的寬高比例不同於背景區域,則部分圖片可能看不見。\n contain:這個值會縮放背景圖片,以完全容納在背景區域內。如果圖片的寬高比例不同於背景區域,則可能會出現空白區域。\n\n 如果使用具體的寬高值例如 50%、3em 或 12px。如果只提供一個值,則高度預設為 auto,即按比例縮放。\n\n 使用 auto auto,這會保持圖片的原始大小。\n\n*/"
},
{
"tag": "h3",
"text": "背景圖片 background-image"
},
{
"tag": "p",
"text": "用於設定元素的背景圖片。這個屬性可以使元素的背景更加豐富多樣,從而增強網頁的視覺效果。"
},
{
"tag": "precode",
"text": "/*基礎語法*/\nbackground-image: url('image-url');"
},
{
"tag": "img",
"text": "img/css/05_background-img-1.png"
},
{
"tag": "precode",
"text": "<style>\n .block{\n max-width: 800px;\n margin-inline: auto;\n height: 300px;\n\n /*多重背景的效果;越前面則越上層*/\n background: url(../../assets/images/1.png) left center no-repeat,url(../../assets/images/4.png) right center no-repeat,url(../../assets/images/map.png) center center;\n\n /*\n 按照順序轉寫每個背景的大小 [x軸 y軸]\n 避免變形的方式就是固定一軸另外一軸使用auto能避免圖片變形\n */\n\n background-size: 220px auto/*未變形*/, 190px 190px/*變形*/, auto;\n }\n</style>"
},
{
"tag": "h3",
"text": "背景尺寸 background-size"
},
{
"tag": "p",
"text": "用於指定背景圖片的尺寸。這個屬性可以控制背景圖片如何適應元素的大小,可以設置具體的尺寸值或使用關鍵字來自動調整。"
},
{
"tag": "img",
"text": "img/css/06_background-size-1.png"
},
{
"tag": "precode",
"text": ".block {\n max-width: 800px;\n margin-inline: auto;\n height: 300px;\n border: 4px solid #ccc;\n margin-block: 15px;\n\n /*多重背景的效果;越前面則越上層*/\n background: url(../../assets/images/map.png) center center no-repeat;\n\n /* background-size: cover; */\n }\n\n .contain {\n /*可以將圖片在容器內完整看到,但會有部分留白*/\n background-size: contain;\n }\n\n .cover {\n /*圖片會填滿容器,但部分內容會在容器外顯示不出來,但不會留白*/\n background-size: cover;\n }"
},
{
"tag": "h3",
"text": "background-clip"
},
{
"tag": "p",
"text": "用於控制背景(背景顏色或背景圖片)繪製的區域。它決定了背景是否延伸到邊框、內邊距或內容區域。"
},
{
"tag": "img",
"text": "img/css/07_background-clip-1.png"
},
{
"tag": "precode",
"text": "background-clip: border-box | padding-box | content-box | text ;。"
},
{
"tag": "img",
"text": "img/css/07_background-clip-2.png"
},
{
"tag": "precode",
"text": ".Hello {\ntext-align: center;\nfont-family: Arial, Helvetica, sans-serif;\nbackground: linear-gradient(to top, purple, rgb(254, 219, 225) 70%);\n-webkit-background-clip: text; /*文字出現的範圍*/\ncolor: transparent;\nfont-size: 5rem;\n\n/*-webkit-前贅字代表瀏覽器可能尚未支援測試階段 */\n}"
},
{
"tag": "h2",
"text": "opacity 透明度"
},
{
"tag": "p",
"text": "用於設置元素的透明度。通過調整透明度,可以讓元素部分或完全透明,從而達到不同的視覺效果。"
},
{
"tag": "precode",
"text": "opacity: [0~1]; /*設定0~1之間的值*/\n\nopacity: 0; /*透明*/\nopacity: 1; /*不透明*/"
},
{
"tag": "p",
"class": "yellow",
"text": "注意: 設定父層透明度,會讓其子階元素繼承透明度。"
},
{
"tag": "mark",
"text": "更新中🚧..."
}
],
[
{ "title": "JavaScript🧩" },
{
"tag": "h2",
"text": "介紹"
},
{
"tag": "p",
"text": "JavaScript(簡稱 JS)是一種跨平台、面向對象的腳本語言,它在 Web 頁面中實現互動功能,例如動畫、可點擊的按鈕、菜單等,是 Web 開發人員必須學習的三門語言之一,它控制網頁的行為,並與 HTML 和 CSS 一起工作。此外,它還有高級的服務端版本,例如 「Node.js」,可以在 Web 上添加更多功能,不僅僅是下載文件,還包括多台電腦之間的協同合作。以下式一些特點:"
},
{
"tag": "p",
"class": "nli",
"text": "輕量級:JavaScript 是一種輕量級的編程語言。"
},
{
"tag": "p",
"class": "nli",
"text": "可插入 HTML 頁面:我們可以將 JavaScript 插入到 HTML 頁面中,並由所有現代瀏覽器執行。"
},
{
"tag": "p",
"class": "nli",
"text": "動態、弱型別、基於原型的物件導向程式語言:JavaScript 具有這些特性,使其適合用於 Web 開發。"
},
{
"tag": "h2",
"text": "宣告變數與常數"
},
{
"tag": "h3",
"text": "var"
},
{
"tag": "p",
"text": ""
},
{
"tag": "mark",
"text": "全域變數"
},
{
"tag": "mark",
"text": "可重複宣告"
},
{
"tag": "mark",
"text": "Hoisting"
},
{
"tag": "p",
"text": "宣告的變數具有函數作用域(function scope),也就是說,變數在函數內部是局部的,在函數外部是全局的。同一作用域內可以重複宣告同名變數。宣告的變數會被提升到作用域的頂部,但變數初始化不會提升。"
},
{
"tag": "precode",
"text": "function example() {\n console.log(x); // undefined\n var x = 5;\n console.log(x); // 5\n}\nexample();"
},
{
"tag": "h3",
"text": "let"
},
{
"tag": "p",
"text": ""
},
{
"tag": "mark",
"text": "區塊變數"
},
{
"tag": "mark",
"text": "不可重複宣告"
},
{
"tag": "mark",
"text": "Hoisting"
},
{
"tag": "p",
"text": "宣告的變數具有塊作用域(block scope),也就是說,變數在其宣告的代碼塊內是局部的。同一作用域內不能重複宣告同名變數。宣告的變數也會提升,但在變數宣告前使用會導致引用錯誤(ReferenceError)。"
},
{
"tag": "precode",
"text": "function example() {\n console.log(x); // ReferenceError: x is not defined\n let x = 5;\n console.log(x); // 5\n}\nexample();"
},
{
"tag": "h3",
"text": "const"
},
{
"tag": "p",
"text": ""
},
{
"tag": "mark",
"text": "區塊常數"
},
{
"tag": "mark",
"text": "不可重複宣告"
},
{
"tag": "mark",
"text": "不可重新賦值"
},
{
"tag": "mark",
"text": "Hoisting"
},
{
"tag": "p",
"text": " 宣告的變數也具有塊作用域(block scope),類似於 let,同一作用域內不能重複宣告同名變數。宣告的變數必須在宣告時賦值,且之後不能重新賦值。宣告的變數也會提升,但在變數宣告前使用會導致引用錯誤(ReferenceError)。"
},
{
"tag": "precode",
"text": "const myConst; // 這行會報錯,因為沒有初始化\nconst myConst = 10; // 正確的宣告方式\n\n\nconst myConst2 = 10;\nmyConst2 = 20; // 這行會報錯,因為不能重新賦值\n\nif (true) {\n const myConst3 = 10;\n console.log(myConst3); // 10\n}\nconsole.log(myConst3); // 這行會報錯,因為 myConst3 在這裡是未定義的\n\n"
},
{
"tag": "h2",
"text": "資料型別"
},
{
"tag": "h3",
"text": "型別判斷 typeof()"
},
{
"tag": "p",
"text": "typeof 是 JavaScript 中的運算符,用於檢查變數或表達式的數據類型。它返回一個字符串,表示操作數的數據類型。"
},
{
"tag": "precode",
"text": "let a =10;\nconsole.log(a,typeof(a)); //number\n\nlet b =false;\nconsole.log(b,typeof(b)); //boolean\n\nlet c ='Hello';\nconsole.log(c,typeof(c)); //string\n\nlet d =[];\nconsole.log(d,typeof(d)); //object\n\nlet e ={};\nconsole.log(e,typeof(e)); //object\n"
},
{
"tag": "h3",
"text": "轉換字串 toString()"
},
{
"tag": "p",
"text": "用於將數據轉換為字符串。"
},
{
"tag": "precode",
"text": "//轉換數字\nlet num = 123;\nlet str = num.toString();\nconsole.log(str); // '123'\n\n//轉換布林值\nlet bool = true;\nlet str = bool.toString();\nconsole.log(str); // 'true'\n\n//轉換物件\nlet obj = { key: 'value' };\nlet str = obj.toString();\nconsole.log(str); // '[object Object]'"
},
{
"tag": "h3",
"text": "轉換數值 Number()"
},
{
"tag": "p",
"text": "用於將一個值轉換為數字類型。它可以處理各種類型的輸入,如字符串、布林值和其他數字類型。"
},
{
"tag": "precode",
"text": "//轉換字串\nlet str = '123';\nlet num = Number(str); // 123\n\n//可以處理小數點\nlet str = '123.45';\nlet num = Number(str); // 123.45\n\n//布林值會被轉成0或1\nlet boolTrue = true;\nlet boolFalse = false;\nlet numTrue = Number(boolTrue); // 1\nlet numFalse = Number(boolFalse); // 0\n\n//處理非數字的數\nlet str = 'abc';\nlet num = Number(str); // NaN (Not-a-Number)\n\n//其它\nlet nullValue = null;\nlet num = Number(nullValue); // 0\n\nlet undefinedValue;\nlet num = Number(undefinedValue); // NaN\n\n"
},
{
"tag": "h3",
"text": "與parseInt()和parseFloat的區別"
},
{
"tag": "b",
"text": "parseInt()"
},
{
"tag": "p",
"text": "會解析字符串並返回整數,而 Number() 則會嘗試轉換整個字符串。"
},
{
"tag": "b",
"text": "parseFloat()"
},
{
"tag": "p",
"text": "會解析字符串並返回浮點數,而 Number() 會嘗試轉換整個字符串。"
},
{
"tag": "precode",
"text": "let str = '123abc';\nlet numParseInt = parseInt(str); // 123\nlet numParseFloat = parseFloat(str); // 123\nlet numNumber = Number(str); // NaN\n"
},
{
"tag": "h2",
"text": "運算符 Operator"
},
{
"tag": "p",
"text": "運算符 (Operators) 用於執行數值運算、字符串運算、比較和邏輯運算。"
},
{
"tag": "h3",
"text": "算數運算符"
},
{
"tag": "precode",
"text": "//加法\nlet sum = 5 + 3; // 8\nlet concatenated = 'Hello' + ' ' + 'World'; // 'Hello World'\n\n//減法\nlet difference = 5 - 3; // 2\n\n//乘法\nlet product = 5 * 3; // 15\n\n//除法\nlet quotient = 6 / 3; // 2\n\n//取餘數\nlet remainder = 5 % 2; // 1\n\n//求指數\nlet power = 2 ** 3; // 8\nlet power2 = Math.pow(2,3) // 8,此方法同上\n"
},
{
"tag": "h3",
"text": "賦值運算符"
},
{
"tag": "p",
"text": "賦值 (=):將右側的值賦給左側的變量。"
},
{
"tag": "precode",
"text": "//將10賦予給x\nlet x = 10;\n\n\nlet x = 10;\nx += 5; // x = x + 5的意思,x = 15\n"
},
{
"tag": "p",
"text": "減法賦值 (-=)、乘法賦值 (*=)、除法賦值 (/=)、取餘賦值 (%=)、指數賦值 (**=) 類似。"
},
{
"tag": "h3",
"text": "比較運算符"
},
{
"tag": "p",
"text": "通常回傳布林值。"
},
{
"tag": "precode",
"text": "//(==)檢查是否相等\nlet isEqual = (5 == '5'); // true\n\n//(===)檢查是否相等以外還檢查型別是否相同\nlet isStrictEqual = (5 === '5'); // false\n\n//(!=)值不相等與\nlet isNotEqual = (5 != '5'); // false\n\n//(!==)值或型別完全不相等\nlet isStrictNotEqual = (5 !== '5'); // true\n"
},
{
"tag": "p",
"text": "大於 (>)、小於 (<)、大於或等於 (>=)、小於或等於 (<=):進行數值比較。"
},
{