[TIl] Code Fix!!!🀣

jay__ssΒ·2021λ…„ 11μ›” 11일
2
post-thumbnail

인생 첫 μ½”λ“œ μˆ˜μ • !

μ–΄μ œ 직접 μž‘μ„±ν•œ λ°˜μ‘ν˜• μ›Ή νŽ˜μ΄μ§€λ₯Ό μˆ˜μ—…μ—μ„œ 직접 λ‹€μ‹œ μž‘μ„±ν–ˆλ‹€.
μƒˆλ‘­κ²Œ μ•Œκ²Œλ˜κ±°λ‚˜, ν•΄κ²°λœ κΆκΈˆμ¦λ“€μ„ λͺ¨μ•„μ„œ μž‘μ„±ν•œλ‹€.

1. w3c validation

μ›Ή νŽ˜μ΄μ§€λ₯Ό 직접 λ§Œλ“€μ—ˆλ‹€λ©΄, 제일 λ¨Όμ € κ±°μ³μ•Όν•˜λŠ” 단계가 μžˆλ‹€.
HTMLκ³Ό CSS에 λ¬Έμ œλŠ” μ—†λŠ”μ§€ ν™•μΈν•˜λŠ” μž‘μ—…μ΄λ‹€.

w3c validation 을 ꡬ글링 ν•΄μ„œ μ½”λ“œλ₯Ό copy & paste ν•˜μ—¬ 였λ₯˜λŠ” μ—†λŠ”μ§€ ν™•μΈν•œλ‹€.

κΈ°λ³Έμ€‘μ˜ 기본이닀. ν†΅κ³Όλ˜μ—ˆλ‹€κ³  ꡬ쑰가 잘 μ§œμ—¬μ§„, 효율이 쒋은 μ½”λ“œλŠ” μ•„λ‹ˆλΌλŠ” 뜻!

무렀 10κ°œλ‚˜ λ‚˜μ˜¨ warningκ³Ό errorλ₯Ό κ²€ν† ν•΄λ³Έλ‹€.(μ€‘λ³΅μžˆμŒ!)

1.1 Section lacks heading

ꡬ간을 λ‚˜λˆ μ£Όλ €κ³  μ‚¬μš©ν•œ section을 μ‚¬μš©ν–ˆλ‹€.
이 λ•Œ, κ΅¬κ°„λ§ˆλ‹€ κ°€μ§€λŠ” 의미λ₯Ό λ‚˜νƒ€λ‚΄λŠ” ν—€λ”©νƒœκ·Έλ₯Ό μ¨μ•Όν•œλ‹€κ³  ꢌμž₯ν•œλ‹€.
(μ›Ή μƒμ—μ„œ μ•ˆλ³΄μ΄κ²Œ ν•˜λŠ” 방법은 좔후에 닀룬닀.)

1.2 … name, id on input : Must not be Empty

inputνƒœκ·Έμ˜ id, name은 λΉ„μ–΄μžˆμœΌλ©΄ μ•ˆλœλ‹€.
λ§ˆν¬μ—…μ„ κ³ λ €ν•˜μ§€ μ•Šκ³  λ ˆμ΄μ•„μ›ƒλ§Œ κ³ λ €ν•˜λ©΄μ„œ μž‘μ„±ν•˜μ—¬ 생긴 였λ₯˜μ΄λ‹€!!!

λ‹€μ‹œλŠ” λ§ˆν¬μ—…μ„ λ¬΄μ‹œν•˜μ§€ μ•ŠλŠ”λ‹€.

1.3 Duplicate ID

μœ„μ˜ 사항과 κ΄€λ ¨λœλ‹€. 곡백으둜 남긴 input의 idκ°€ λ™μΌν•˜λ‹€κ³  νŒλ‹¨λ˜μ–΄ λ°œμƒν–ˆλ‹€.

1.4 The first occurrence of ID was here

처음으둜 idκ°€ λΉ„μ–΄μžˆλŠ” μ€„μ˜ line을 μ•Œλ €μ€€λ‹€.


2. μ˜λ―Έκ°€ μ—†λŠ” 이미지 μ‚½μž…

μ˜λ―Έκ°€ μ—†λŠ” 이미지λ₯Ό HTMLμƒμ—μ„œ imgνƒœκ·Έλ‘œ μ‚½μž…ν•˜λŠ” 것은 semanticν•œ ꡬ쑰라고 보기 μ–΄λ ΅λ‹€.
그럴 λ•Œ μ‚¬μš©ν•˜λŠ” 방법이 가상 μš”μ†Œλ₯Ό μƒμ„±ν•˜μ—¬ background-imageλ₯Ό μ‚½μž…ν•˜λŠ” 것이닀.

2.1 Pseudo element

가상 μš”μ†ŒλŠ” 기본적으둜 inline 속성이닀.

이미지λ₯Ό μ‚½μž…ν•˜κΈ° μœ„ν•΄μ„ ,

  1. display: block; content: ''; μΆ”κ°€
  2. μ΄λ―Έμ§€μ˜ 크기만큼 width height μΆ”κ°€
  3. background-image: url(); μΆ”κ°€
  4. μ΄λ―Έμ§€μ˜ μ›λž˜ μ‚¬μ΄μ¦ˆκ°€ μœ„μ—(2번) μž‘μ„±λœ 크기λ₯Ό λ„˜μ–΄κ°€λ²„λ¦¬λ©΄ 지리게 λœλ‹€.
    background-size둜 μœ„μ˜ 크기와 λ§žμΆ°μ€€λ‹€.
  5. position: absolute;λ₯Ό μ‚¬μš©ν•˜μ—¬ μœ„μΉ˜λ₯Ό μ‘°μ •ν•œλ‹€. (λΆ€λͺ¨μ— relativeμžˆλŠ”μ§€ 확인)

μœ„μ™€ 같은 μ²˜λ¦¬λ“€μ΄ ν•„μš”ν•˜λ‹€.

2.2 μ •κ°€μš΄λ° μ •λ ¬ 방법

μ΄λ ‡κ²Œ μ‚½μž…ν•œ 이미지λ₯Ό λΆ€λͺ¨μš”μ†Œμ˜ μ •κ°€μš΄λ°μ— μœ„μΉ˜μ‹œν‚€κ³  싢은 κ²½μš°κ°€ μžˆλ‹€.
이 λ•Œ μ‚¬μš©ν•˜λŠ” 두 가지 방법을 μ•Œμ•„λ³΄μž.

πŸ˜‚ 이미지 크기λ₯Ό λͺ¨λ₯Ό λ•Œ

position: absolute;
top: 50%
left: 50%
transform: translate(-50%, -50%);

😁 이미지 크기λ₯Ό μ•Œ λ•Œ

position: absolute;
top: 50%
left: 50%
margin-top: -(이미지 λ„ˆλΉ„μ˜ 절반)px;
margin-left: -(이미지 λ†’μ΄μ˜ 절반)px;

두 가지 λͺ¨λ‘ μ˜λ―ΈλŠ” κ°™λ‹€. λΆ€λͺ¨λ₯Ό κΈ°μ€€μœΌλ‘œ μ’Œμƒλ‹¨μ—μ„œ 50%μ”© μ΄λ™μ‹œν‚€κ³ ,
자기 μžμ‹ μ˜ 크기의 절반 만큼, λ‹€μ‹œ μ—­μœΌλ‘œ μ΄λ™μ‹œν‚€λŠ” ν–‰μœ„μ΄λ‹€.

2.3 z-index

μ΄λ ‡κ²Œ μ˜λ―Έκ°€ μ—†λŠ” μ΄λ―Έμ§€λŠ” μ–΄λ– ν•œ μ„Ήμ…˜μ˜ 배경으둜 μ“°κ³  싢은 κ²½μš°κ°€ λ§Žλ‹€.
즉, λ³΄μ—¬μ£Όκ³ μž ν•˜λŠ” μš”μ†Œμ˜ 뒀에 λ°°μΉ˜μ‹œν‚€λŠ” 일이 ν•„μš”ν•˜λ‹€.
이 λ•Œ, μ‚¬μš©ν•˜λŠ”κ²Œ z-index이닀.

z-indexλ₯Ό μ‚¬μš©ν•˜λ €λ©΄, λ°˜λ“œμ‹œ position값을 μ£Όμ–΄μ•Ό ν•œλ‹€!!!!!!!!!!!!!


3. λ°˜μ‘ν˜•κ³Ό max-width

μ΅œλŒ€-λ„ˆλΉ„ : 말 κ·ΈλŒ€λ‘œ 지정해쀀 μš”μ†Œμ˜ μ΅œλŒ€ λ„ˆλΉ„λ₯Ό 지정해쀀닀.
max-width: 480px;

λ§Œμ•½ 이미지라면, μ΄λ―Έμ§€μ˜ μ΅œλŒ€ λ„ˆλΉ„κ°€ 480px이닀. 즉, 479pxλΆ€ν„°λŠ” 쀄어든닀!!
λ§Œμ•½ <p>라면, 글을 λ‹΄κ³  μžˆλŠ” λ°•μŠ€κ°€ 슀-λ₯΄λ₯΄λ₯΅ 쀄어듀 것이닀.


4. μž‘μ„±μ„ ν•˜λŠ” 쀑에 μˆ˜μ •?!

CSSμž‘μ„±μ„ ν•˜λ˜ 쀑,

"μ—‡, 이거 λ°©κΈˆμ „μ—λ„ μž‘μ„±ν•œ μŠ€νƒ€μΌμΈλ°,,?"

ν•˜λŠ” 상황이 λ°œμƒν•œλ‹€.

μ£Όμ €ν•˜μ§€ 말고, CSS μˆ˜μ •μ— λ“€μ–΄κ°€μž.
(λ‚˜μ²˜λŸΌ μž…λ¬Έμžμ˜ 경우, μœ„μ—μ„œ μ•„λž˜λ‘œ μ­‰ μŠ€νƒ€μΌμ„ μž‘μ„±ν•˜κΈ° 마련인데,
κ·ΈλŸ¬λ‹€ 보면 μ€‘λ³΅λœ μŠ€νƒ€μΌλ“€μ„ 확인할 수 μžˆλ‹€. 글씨크기와 간격 + λ²„νŠΌμ˜ μŠ€νƒ€μΌ λ“±λ“±)

이 λ•ŒλŠ” λ™μΌν•œ μ½”λ“œλ₯Ό 또 λ°˜λ³΅ν•˜μ§€ μ•Šλ„λ‘ λ°”λ‘œλ°”λ‘œ μˆ˜μ •μ„ ν•΄μ£Όμž!!!!

이λ₯Ό Refactoring이라고도 λΆ€λ₯΄λŠ”데, 일단은 μ΄μ •λ„λ‘œλ§Œ μ•Œμ•„λ‘μž.
(주둜 가독성을 높이고 μœ μ§€λ³΄μˆ˜λ₯Ό νŽΈν•˜κ²Œ ν•΄μ£ΌλŠ” ν–‰μœ„μΈλ°, λ‘κΊΌμš΄ μ±…μœΌλ‘œλ„ λ‚˜μ˜¬ 정도이닀;;)

5. Button의 Size 지정?!

λ²„νŠΌμ΄ μžˆλ‹€κ³  ν–ˆμ„ λ•Œ, 이λ₯Ό λ„ˆλΉ„μ™€ 높이 값을 지정해쀄지 νŒ¨λ”©μœΌλ‘œ μ²˜λ¦¬ν• μ§€ κ³ λ―Όν•˜μ˜€λ‹€.

ν”Όκ·Έλ§ˆλ₯Ό 확인해라!! (λ§Œμ•½ λ²„νŠΌ κ°’λ“€μ˜ νŒ¨λ”©λ“€μ΄ λ™μΌν•˜λ‹€λ©΄, νŒ¨λ”©μ²˜λ¦¬ν•˜κ³  닀쀑 μ„ νƒμ„ν•˜μž!)

λ²„νŠΌμ˜ μŠ€νƒ€μΌμ„ μž…νž λ•Œ, κ°€μž₯ 고민이 λ˜μ—ˆλ˜ 뢀뢄이닀.

κ²°κ³Όλ‘œλŠ”, ν”Όκ·Έλ§ˆμ—μ„œ νŒ¨λ”©κ°’μ„ ν™•μΈν•˜μžλŠ” 결둠이닀.
λŒ€λΆ€λΆ„μ˜ 경우, νŒ¨λ”© 값이 곡톡적일 수 μžˆλ‹€.
μ΄λŸ¬ν•œ 경우, λΆˆν•„μš”ν•œ μ½”λ“œ μž‘μ„±μ„ ν”Όν•˜κΈ° μœ„ν•΄ 닀쀑 선택을 ν•˜μ—¬ 일괄적인 μŠ€νƒ€μΌ 처리λ₯Ό ν•˜μž.


6. Screen Reader Only!!

ꡬ쑰적인 λ§ˆν¬μ—… + μ›Ή 접근성을 κ³ λ €ν•˜μ—¬μ„œ

if) λ‚΄κ°€ μ†Œλ¦¬λ§Œ 듣고도 이 νŽ˜μ΄μ§€κ°€ μ–΄λ–€ νŽ˜μ΄μ§€μΈμ§€ μ•Œ 수 μžˆμ„κΉŒ??

에 λŒ€ν•œ 고민을 ν•˜κ³  ꡬ쑰λ₯Ό 지 것!!!!
μœ„μ—μ„œ λ°œκ²¬ν•œ 였λ₯˜μ™€ 같은 λ§₯락으둜, μ˜λ―ΈμžˆλŠ” img에 alt값을 λ°˜λ“œμ‹œ μ€€λ‹€κ±°λ‚˜,
section 으둜 λ‚˜λˆˆ ꡬ간듀에 heading νƒœκ·Έλ₯Ό λ„£κ³  μ›Ή μƒμ—μ„œ 'λ³΄μ΄μ§€λ§Œ' μ•Šκ²Œ μ²˜λ¦¬ν•΄μ£ΌλŠ”
μž‘μ—…λ“€μ΄ ν•„μš”ν•˜λ‹€.

.sr-only {
    /* display: none;은 μŠ€ν¬λ¦°λ¦¬λ”κ°€ 읽지 μ•ŠμŒ */
    position: absolute;
    left: -9999px;
    top: auto;
    /* 0pxλ‘œν•˜λ©΄ μŠ€ν¬λ¦°λ¦¬λ”κ°€ λͺ»μ½λŠ”κ²½μš°λ„ μžˆλ‹€ */
    width: 1px;
    height: 1px;
    overflow: hidden;
}
.blind {
    border: 0;
	clip: rect(0 0 0 0);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	white-space: nowrap;
	width: 1px;
}

두 κ°€μ§€μ˜ 방법이 있고, ν™”λ©΄μƒμ—μ„œλ§Œ 숨기고자 ν•˜λŠ” μš”μ†Œμ— class값을 주자!!!


7. Nav Skip

접근성을 μœ„ν•œ μΌμ’…μ˜ μΆ”κ°€μž‘μ—…μ΄λ‹€.
λžœλ”©μ„ ν•˜μžλ§ˆμž tabν‚€λ₯Ό λˆ„λ₯΄λ©΄ νŽ˜μ΄μ§€ λ‚΄λΆ€μ—μ„œ ν•΄λ‹Ή λΆ€λΆ„μœΌλ‘œ 갈 수 μžˆλ„λ‘ μž‘μ—…ν•˜λŠ” 것이닀.

<div class="nav-skip">
  <a href="#cont-nav">μ˜ν™” λͺ©λ‘ λ°”λ‘œκ°€κΈ°</a>
  <a href="#cont-company">νšŒμ‚¬μ •λ³΄ λ°”λ‘œκ°€κΈ°</a>
</div>
.nav-skip a {
  position: absolute;
  top: -200px;
  left: 0;
  width: 300px;
  line-height: 30px;
  border: 1px solid #fff;
  color: #fff;
  background-color: #333;
  text-align: center;
}
.nav-skip a:active, .nav-skip a:focus {
  top: 0;
}

μœ„μ˜ htmlꡬ문을 body의 μ‹œμž‘λΆ€λΆ„μ— λ„£μ–΄μ€€λ‹€.
그리고 ν‰μƒμ‹œμ˜ .nav-skip ν΄λž˜μŠ€λ“€μ€ ν™”λ©΄λ°–μœΌλ‘œ μž μ‹œ λ°€μ–΄λ†“λŠ”λ‹€.
λžœλ”©μ‹œμ— tabν‚€ μž…λ ₯μ‹œ .nav-skipκ°€ ν™œμ„±ν™”λ˜λ©΄μ„œ ν™”λ©΄μœΌλ‘œ λ‚˜νƒ€λ‚˜κ²Œ λœλ‹€.
κ°€κ³ μž ν•˜λŠ” 뢀뢄에 id값을 λ°˜λ“œμ‹œ μž…λ ₯ν•΄μ•Όλ§Œ, ν•΄λ‹Ή λΆ€λΆ„μœΌλ‘œ 갈 수 μžˆλ‹€.

βœ… 끝으둜

μœ„μ— 적어놓은 사항 μ „~~λΆ€ μˆ˜μ—… λ•Œ λ“€μœΌλ©° 고개λ₯Ό λ„λ•μ˜€λ˜ κ°œλ…λ“€μ΄λ‹€.
ν•˜μ§€λ§Œ 직접 κ΅¬ν˜„ν•  λ•Œ ν—·κ°ˆλ Έκ±°λ‚˜, 까먹게 λ˜μ—ˆλ˜ κ°œλ…λ“€μ΄λ‹€.
배우기만 ν•΄μ„œλŠ” λ°œμ „μ΄ μ—†μŒμ„ λŠλ‚€λ‹€.

μš”μ¦˜, λ‚΄κ°€ λ„ˆλ¬΄ 배우기만 ν•˜λŠ”κ²Œ μ•„λ‹Œκ°€λΌλŠ” 생각이 λ“ λ‹€.
읡히자!! μ•Œκ³ λ§Œ μžˆλŠ” 것은 내겐 큰 μ˜λ―Έκ°€ μ—†λ‹€!!! 1도 μ—†λ‹€πŸ˜Ž
주말간에 ν•  일을 κΌ­ μž‘μ„±ν•˜μž!!


profile
πŸ˜‚κ·Έλƒ₯ μ§μ§„ν•˜λŠ” (μ˜ˆλΉ„)개발자

4개의 λŒ“κΈ€

comment-user-thumbnail
2021λ…„ 11μ›” 11일

정리 정말 μž˜ν•˜μ…¨μ–΄μš”!! πŸ‘

1개의 λ‹΅κΈ€
comment-user-thumbnail
2021λ…„ 11μ›” 12일

πŸ†

1개의 λ‹΅κΈ€