152 lines
5.0 KiB
Markdown
152 lines
5.0 KiB
Markdown
|
---
|
||
|
id: 60fadd972e6ffe0d6858fa2d
|
||
|
title: Step 42
|
||
|
challengeType: 0
|
||
|
dashedName: step-42
|
||
|
---
|
||
|
|
||
|
# --description--
|
||
|
|
||
|
It would be nicer to have the `label` text appear above the form elements.
|
||
|
|
||
|
Select all `input`, `textarea`, and `select` elements, and make them take up the full width of their parent elements.
|
||
|
|
||
|
Also, add `10px` of `margin` to the top of the selected elements. Set the other margins to `0`.
|
||
|
|
||
|
# --hints--
|
||
|
|
||
|
You should use a comma separated element selector to select the `input`, `textarea`, and `select` elements.
|
||
|
|
||
|
```js
|
||
|
assert.isTrue(['input, textarea, select', 'input, select, textarea', 'select, input, textarea', 'select, textarea, input', 'textarea, input, select', 'textarea, select, input'].some(selector => new __helpers.CSSHelp(document).getStyle(selector)));
|
||
|
```
|
||
|
|
||
|
You should set the `width` property to `100%`.
|
||
|
|
||
|
```js
|
||
|
const selFunc = (selector) => new __helpers.CSSHelp(document).getStyle(selector);
|
||
|
assert.equal(selFunc(['input, textarea, select', 'input, select, textarea', 'select, input, textarea', 'select, textarea, input', 'textarea, input, select', 'textarea, select, input'].find(selFunc))?.width, '100%');
|
||
|
```
|
||
|
|
||
|
You should set the `margin-top` property to `10px`.
|
||
|
|
||
|
```js
|
||
|
const selFunc = (selector) => new __helpers.CSSHelp(document).getStyle(selector);
|
||
|
assert.equal(selFunc(['input, textarea, select', 'input, select, textarea', 'select, input, textarea', 'select, textarea, input', 'textarea, input, select', 'textarea, select, input'].find(selFunc))?.marginTop, '10px');
|
||
|
```
|
||
|
|
||
|
You should set the `margin-bottom` property to `0`.
|
||
|
|
||
|
```js
|
||
|
const selFunc = (selector) => new __helpers.CSSHelp(document).getStyle(selector);
|
||
|
assert.equal(selFunc(['input, textarea, select', 'input, select, textarea', 'select, input, textarea', 'select, textarea, input', 'textarea, input, select', 'textarea, select, input'].find(selFunc))?.marginBottom, '0px');
|
||
|
```
|
||
|
|
||
|
You should set the `margin-left` property to `0`.
|
||
|
|
||
|
```js
|
||
|
const selFunc = (selector) => new __helpers.CSSHelp(document).getStyle(selector);
|
||
|
assert.equal(selFunc(['input, textarea, select', 'input, select, textarea', 'select, input, textarea', 'select, textarea, input', 'textarea, input, select', 'textarea, select, input'].find(selFunc))?.marginLeft, '0px');
|
||
|
```
|
||
|
|
||
|
You should set the `margin-right` property to `0`.
|
||
|
|
||
|
```js
|
||
|
const selFunc = (selector) => new __helpers.CSSHelp(document).getStyle(selector);
|
||
|
assert.equal(selFunc(['input, textarea, select', 'input, select, textarea', 'select, input, textarea', 'select, textarea, input', 'textarea, input, select', 'textarea, select, input'].find(selFunc))?.marginRight, '0px');
|
||
|
```
|
||
|
|
||
|
# --seed--
|
||
|
|
||
|
## --seed-contents--
|
||
|
|
||
|
```html
|
||
|
<!DOCTYPE html>
|
||
|
<html>
|
||
|
<head>
|
||
|
<title>freeCodeCamp Registration Form Project</title>
|
||
|
<link rel="stylesheet" type="text/css" href="styles.css" />
|
||
|
</head>
|
||
|
<body>
|
||
|
<h1>Registration Form</h1>
|
||
|
<p>Please fill out this form with the required information</p>
|
||
|
<form action='https://fcc-registration-form.com'>
|
||
|
<fieldset>
|
||
|
<label>Enter Your First Name: <input type="text" name="first-name" required /></label>
|
||
|
<label>Enter Your Last Name: <input type="text" name="last-name" required /></label>
|
||
|
<label>Enter Your Email: <input type="email" name="email" required /></label>
|
||
|
<label>Create a New Password: <input type="password" name="password" pattern="[a-z0-5]{8,}" required /></label>
|
||
|
</fieldset>
|
||
|
<fieldset>
|
||
|
<label><input type="radio" name="account-type" /> Personal Account</label>
|
||
|
<label><input type="radio" name="account-type" /> Business Account</label>
|
||
|
<label>
|
||
|
<input type="checkbox" name="terms" required /> I accept the <a href="https://www.freecodecamp.org/news/terms-of-service/">terms and conditions</a>
|
||
|
</label>
|
||
|
</fieldset>
|
||
|
<fieldset>
|
||
|
<label>Upload a profile picture: <input type="file" name="file" /></label>
|
||
|
<label>Input your age (years): <input type="number" name="age" min="13" max="120" />
|
||
|
</label>
|
||
|
<label>How did you hear about us?
|
||
|
<select name="referrer">
|
||
|
<option value="">(select one)</option>
|
||
|
<option value="1">freeCodeCamp News</option>
|
||
|
<option value="2">freeCodeCamp YouTube Channel</option>
|
||
|
<option value="3">freeCodeCamp Forum</option>
|
||
|
<option value="4">Other</option>
|
||
|
</select>
|
||
|
</label>
|
||
|
<label>Provide a bio:
|
||
|
<textarea name="bio" rows="3" cols="30" placeholder="I like coding on the beach..."></textarea>
|
||
|
</label>
|
||
|
</fieldset>
|
||
|
<input type="submit" value="Submit" />
|
||
|
</form>
|
||
|
</body>
|
||
|
</html>
|
||
|
```
|
||
|
|
||
|
```css
|
||
|
body {
|
||
|
width: 100%;
|
||
|
height: 100vh;
|
||
|
margin: 0;
|
||
|
background-color: #1b1b32;
|
||
|
color: #f5f6f7;
|
||
|
font-family: Tahoma;
|
||
|
font-size: 16px;
|
||
|
}
|
||
|
|
||
|
h1, p {
|
||
|
margin: 1em auto;
|
||
|
text-align: center;
|
||
|
}
|
||
|
|
||
|
form {
|
||
|
width: 60vw;
|
||
|
max-width: 500px;
|
||
|
min-width: 300px;
|
||
|
margin: 0 auto;
|
||
|
}
|
||
|
|
||
|
fieldset {
|
||
|
border: none;
|
||
|
padding: 2rem 0;
|
||
|
}
|
||
|
|
||
|
fieldset:not(:last-of-type) {
|
||
|
border-bottom: 3px solid #3b3b4f;
|
||
|
}
|
||
|
|
||
|
label {
|
||
|
display: block;
|
||
|
margin: 0.5rem 0;
|
||
|
}
|
||
|
|
||
|
--fcc-editable-region--
|
||
|
|
||
|
--fcc-editable-region--
|
||
|
|
||
|
```
|