# टेरॅरियम प्रकल्प भाग 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` दिसण्याची गरज नाही.
---
## डोकटाइप आणि html टॅग्स
HTML फाइलची पहिली ओळ म्हणजे तिचा डोकटाइप. फाइलच्या अगदी वर ही ओळ असणे आवश्यक आहे हे थोडे आश्चर्यकारक आहे, परंतु ती जुन्या ब्राउझरला सांगते की पृष्ठ सध्याच्या HTML स्पेसिफिकेशनचे अनुसरण करून मानक मोडमध्ये रेंडर करणे आवश्यक आहे.
> टिप: VS Code मध्ये, तुम्ही टॅगवर होवर करू शकता आणि MDN संदर्भ मार्गदर्शकांमधून त्याच्या वापराबद्दल माहिती मिळवू शकता.
दुसरी ओळ `` टॅगची ओपनिंग टॅग असावी, आणि त्यानंतर लगेच त्याचा क्लोजिंग टॅग `` असावा. हे टॅग्स तुमच्या इंटरफेसचे मूळ घटक आहेत.
### कार्य
तुमच्या `index.html` फाइलच्या शीर्षस्थानी या ओळी जोडा:
```HTML
```
✅ डोकटाइप सेट करून क्वेरी स्ट्रिंगद्वारे काही वेगवेगळे मोड्स ठरवले जाऊ शकतात: [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) सारखे अप्रचलित टॅग्स तुमच्या मार्कअपमध्ये वापरू नयेत. तरीही, तुम्ही `