개요
- Label 태그에 개행을 넣은 경험을 기록한다.
- gonic-gin으로 환경을 만들어 실험환경을 구축한다.
- js를 통해 문제를 해결한다.
Label 태그
- Input 태그를 설명하는 문자열이 필요한 경우, Label 태그에 넣어 추가한다.
- Label 태그 사용법
- Label 태그의 for attribute에 Input 태그 id 할당
1 2
<input type="text" name="testInput" id="test-input-1"> <label for="test-input-1">항목1</label>
- Label 태그 안에 Input 태그를 넣어서 사용
1 2 3
<label>항목1 <input type="text" name="testInput"> </label>
- Label 태그의 for attribute에 Input 태그 id 할당
- 특징
- Label 태그 안에는 inline level elements만 사용해야한다. (W3C 17.9.1 The LABEL element)
- inline level elements 예시
- 따라서 문자열에 br 태그를 추가해서 개행을 구현한다.
실험 환경 구축
- 개요
- gonic-gin framework로 간단한 웹 서버 환경 구축
- html 파일은 view 디렉토리 하위에 저장.
- 디렉토리 구조
- main.go
- /view
- test.html
- main.go
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
package main import ( "net/http" "github.com/gin-gonic/gin" ) func main() { router := gin.Default() router.LoadHTMLGlob("view/*") router.GET("test", func(c *gin.Context) { c.HTML( http.StatusOK, "test.html", gin.H{"testText": "line1<br />line2"}, ) }) router.Run(":8888") }
- /view/test.html
1 2 3 4 5 6 7 8 9 10 11 12 13
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> </head> <body> <input type="checkbox" id="test-input" /> <label for="test-input">{{ .testText }}</label> </body> </html>
실험 시작
- 실행 명령
1
go run main.go
- test 페이지 확인
- 브라우저를 켠다.
- http://localhost:8888/test 에 접속한다.
실험 결과
- 실패
조치
- /view/test.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> </head> <body> <input type="checkbox" id="test-input" /> <label for="test-input">{{ .testText }}</label> <script type="text/javascript"> document.addEventListener("DOMContentLoaded", function () { reAssignTestInputLabel(); }); // reAssignTestInputLabel : testInput의 innerText를 innerHTML로 변경. function reAssignTestInputLabel() { var testInputElem = document.querySelector("#test-input + label"); testInputElem.innerHTML = testInputElem.innerText; } </script> </body> </html>