# टेरॅरियम प्रकल्प भाग 1: HTML ची ओळख

> स्केच नोट [Tomomi Imura](https://twitter.com/girlie_mac) यांनी तयार केलेली
## व्याख्यानपूर्व प्रश्नमंजुषा
[व्याख्यानपूर्व प्रश्नमंजुषा](https://ff-quizzes.netlify.app/web/quiz/15)
> व्हिडिओ पहा
>
> [](https://www.youtube.com/watch?v=1TvxJKBzhyQ)
### परिचय
HTML, म्हणजेच हायपरटेक्स्ट मार्कअप लँग्वेज, वेबचे 'संकल्पना' आहे. जर CSS तुमच्या HTML ला सजवते आणि JavaScript त्याला जिवंत करते, तर HTML तुमच्या वेब अनुप्रयोगाचे शरीर आहे. HTML चे सिंटॅक्स देखील याच कल्पनेला प्रतिबिंबित करते, कारण त्यात "head", "body", आणि "footer" टॅग्स असतात.
या धड्यात, आपण HTML चा वापर करून आपल्या आभासी टेरॅरियमच्या इंटरफेसचा 'संकल्पना' तयार करू. यात एक शीर्षक आणि तीन स्तंभ असतील: उजवीकडील आणि डावीकडील स्तंभ जिथे ड्रॅग करण्यायोग्य झाडे असतील, आणि मध्यभागी एक क्षेत्र असेल जे खरे काचेच्या टेरॅरियमसारखे दिसेल. या धड्याच्या शेवटी, तुम्हाला स्तंभांमध्ये झाडे दिसतील, पण इंटरफेस थोडा विचित्र दिसेल; काळजी करू नका, पुढील विभागात तुम्ही CSS शैली जोडून इंटरफेस अधिक चांगला बनवाल.
### कार्य
तुमच्या संगणकावर 'terrarium' नावाचा फोल्डर तयार करा आणि त्यात 'index.html' नावाची फाईल तयार करा. तुम्ही Visual Studio Code मध्ये तुमचा टेरॅरियम फोल्डर तयार केल्यानंतर नवीन VS Code विंडो उघडून, 'open folder' वर क्लिक करून, तुमच्या नवीन फोल्डरकडे नेव्हिगेट करून हे करू शकता. Explorer पॅनमधील लहान 'file' बटणावर क्लिक करा आणि नवीन फाईल तयार करा:

किंवा
तुमच्या git bash वर हे आदेश वापरा:
* `mkdir terrarium`
* `cd terrarium`
* `touch index.html`
* `code index.html` किंवा `nano index.html`
> index.html फाईल्स ब्राउझरला सूचित करतात की ती फोल्डरमधील डीफॉल्ट फाईल आहे; जसे की `https://anysite.com/test` सारख्या URL मध्ये `test` नावाचा फोल्डर आणि त्यात `index.html` असू शकतो; URL मध्ये `index.html` दिसण्याची गरज नाही.
---
## DocType आणि html टॅग्स
HTML फाईलची पहिली ओळ म्हणजे तिचा डोकटाइप. हे थोडे आश्चर्यकारक आहे की ही ओळ फाईलच्या अगदी वर असणे आवश्यक आहे, परंतु हे जुन्या ब्राउझरना सांगते की पृष्ठ सध्याच्या HTML स्पेसिफिकेशनचे अनुसरण करून स्टँडर्ड मोडमध्ये रेंडर करणे आवश्यक आहे.
> टिप: VS Code मध्ये, तुम्ही टॅगवर होवर करू शकता आणि MDN संदर्भ मार्गदर्शकांमधून त्याच्या वापराबद्दल माहिती मिळवू शकता.
दुसरी ओळ `` टॅगची ओपनिंग टॅग असावी, आणि त्यानंतर लगेच त्याचा क्लोजिंग टॅग `` असावा. हे टॅग्स तुमच्या इंटरफेसचे मूळ घटक आहेत.
### कार्य
तुमच्या `index.html` फाईलच्या वरच्या भागात या ओळी जोडा:
```HTML
```
✅ DocType सेट करून काही वेगवेगळे मोड्स ठरवले जाऊ शकतात: [Quirks Mode आणि Standards Mode](https://developer.mozilla.org/docs/Web/HTML/Quirks_Mode_and_Standards_Mode). हे मोड्स खूप जुने ब्राउझर (Netscape Navigator 4 आणि Internet Explorer 5) समर्थित करण्यासाठी वापरले जात होते, जे आजकाल सामान्यतः वापरले जात नाहीत. तुम्ही स्टँडर्ड डोकटाइप डिक्लेरेशन वापरू शकता.
---
## दस्तऐवजाचा 'head'
HTML दस्तऐवजाचा 'head' भाग तुमच्या वेब पृष्ठाबद्दल महत्त्वाची माहिती समाविष्ट करतो, ज्याला [metadata](https://developer.mozilla.org/docs/Web/HTML/Element/meta) असेही म्हणतात. आपल्या प्रकरणात, आपण वेब सर्व्हरला सांगतो की हे पृष्ठ रेंडर करण्यासाठी पाठवले जाईल, या चार गोष्टी:
- पृष्ठाचे शीर्षक
- पृष्ठ मेटाडेटा ज्यामध्ये:
- 'character set', पृष्ठात कोणते अक्षर एन्कोडिंग वापरले आहे हे सांगते
- ब्राउझर माहिती, ज्यामध्ये `x-ua-compatible` समाविष्ट आहे जे IE=edge ब्राउझर समर्थित असल्याचे दर्शवते
- पृष्ठ लोड झाल्यावर viewport कसे वागावे याबद्दलची माहिती. viewport ला प्रारंभिक स्केल 1 वर सेट करणे पृष्ठ लोड झाल्यावर झूम स्तर नियंत्रित करते.
### कार्य
तुमच्या दस्तऐवजामध्ये `` टॅगच्या ओपनिंग आणि क्लोजिंग टॅग्सच्या दरम्यान 'head' ब्लॉक जोडा.
```html
Welcome to my Virtual Terrarium
```
✅ जर तुम्ही viewport meta टॅग असे सेट केले: ``, तर काय होईल? [viewport](https://developer.mozilla.org/docs/Web/HTML/Viewport_meta_tag) बद्दल अधिक वाचा.
---
## दस्तऐवजाचा `body`
### HTML टॅग्स
HTML मध्ये, तुम्ही तुमच्या .html फाईलमध्ये टॅग्स जोडून वेब पृष्ठाचे घटक तयार करता. प्रत्येक टॅगमध्ये सामान्यतः ओपनिंग आणि क्लोजिंग टॅग असतो, जसे की: `
hello
` जे परिच्छेद दर्शवते. तुमच्या इंटरफेसचे शरीर तयार करण्यासाठी `` टॅगच्या जोडीच्या आत `` टॅग्सचा संच जोडा; तुमचे मार्कअप आता असे दिसते:
### कार्य
```html
Welcome to my Virtual Terrarium
```
आता, तुम्ही तुमचे पृष्ठ तयार करणे सुरू करू शकता. सामान्यतः, तुम्ही पृष्ठातील वेगवेगळ्या घटकांसाठी `
` टॅग्स वापरता. आपण प्रतिमांचा संच असलेले `
` घटक तयार करू.
### प्रतिमा
एक HTML टॅग ज्याला क्लोजिंग टॅगची गरज नाही तो म्हणजे `` टॅग, कारण त्यात `src` घटक असतो जो पृष्ठाला आयटम रेंडर करण्यासाठी आवश्यक असलेली सर्व माहिती प्रदान करतो.
तुमच्या अॅपमध्ये `images` नावाचा फोल्डर तयार करा आणि त्यात [source code folder](../../../../3-terrarium/solution/images) मधील सर्व प्रतिमा जोडा; (झाडांच्या 14 प्रतिमा आहेत).
### कार्य
त्या झाडांच्या प्रतिमा `` टॅग्सच्या दरम्यान दोन स्तंभांमध्ये जोडा:
```html
```
> टीप: स्पॅन वि. डिव्ह. डिव्ह 'ब्लॉक' घटक मानले जातात, आणि स्पॅन 'इनलाइन'. जर तुम्ही या डिव्हला स्पॅनमध्ये रूपांतरित केले तर काय होईल?
या मार्कअपसह, झाडे आता स्क्रीनवर दिसतात. हे खूप वाईट दिसते, कारण त्यांना अद्याप CSS वापरून शैली दिलेली नाही, आणि आपण पुढील धड्यात ते करू.
प्रत्येक प्रतिमेसाठी alt टेक्स्ट असतो जो प्रतिमा दिसत नसल्यास किंवा रेंडर होत नसल्यास दिसतो. हे अॅक्सेसिबिलिटीसाठी समाविष्ट करणे महत्त्वाचे आहे. भविष्यातील धडांमध्ये अॅक्सेसिबिलिटीबद्दल अधिक जाणून घ्या; सध्या, लक्षात ठेवा की alt अॅट्रिब्युट वापरकर्त्यासाठी प्रतिमेची पर्यायी माहिती प्रदान करते जर काही कारणास्तव प्रतिमा पाहता येत नसेल (मंद कनेक्शन, src अॅट्रिब्युटमधील त्रुटी, किंवा वापरकर्ता स्क्रीन रीडर वापरत असल्यास).
✅ तुम्ही लक्षात घेतले का की प्रत्येक प्रतिमेसाठी एकच alt टॅग आहे? हे चांगले सराव आहे का? का किंवा का नाही? तुम्ही हा कोड सुधारू शकता का?
---
## सेमॅंटिक मार्कअप
सामान्यतः, HTML लिहिताना अर्थपूर्ण 'सेमॅंटिक्स' वापरणे अधिक चांगले असते. याचा अर्थ काय? याचा अर्थ असा की तुम्ही HTML टॅग्सचा वापर डेटा किंवा परस्परसंवादाच्या प्रकाराचे प्रतिनिधित्व करण्यासाठी कराल ज्यासाठी ते डिझाइन केले गेले आहेत. उदाहरणार्थ, पृष्ठावरील मुख्य शीर्षक मजकूरासाठी `
` वापरणे, स्क्रीन रीडर्सना पृष्ठामध्ये नेव्हिगेट करण्यात मदत करते. सामान्यतः, बटणांसाठी `
` टॅगच्या वर हे मार्कअप जोडा:
```html
```
✅ जरी तुम्ही स्क्रीनवर हे मार्कअप जोडले असले तरी, तुम्हाला काहीही दिसत नाही. का?
---
## 🚀आव्हान
HTML मध्ये काही जुन्या 'मजेशीर' टॅग्स आहेत जे अजूनही वापरण्यास मजेदार आहेत, जरी तुम्ही [या टॅग्स](https://developer.mozilla.org/docs/Web/HTML/Element#Obsolete_and_deprecated_elements) सारखे अप्रचलित टॅग्स तुमच्या मार्कअपमध्ये वापरू नयेत. तरीही, तुम्ही `