Skip to main content

Project Study: Detail Steps to Style Your Own Blog Exercise

At the end of CSS course section study, the instructor assigned us a fun blog exercise. We are going to create a simple blog and use relevant CSS element and Box model to style the blog like this:

The Hints of this exercise:
  • there is a gray border around the body, border size is 20px, border color: #bdc3c7
  • date color: #bdc3c7
  • H2 color: #2c3e50
  • Text Font: source sans pro
  • Date Text: All Uppercase
  • Letter-spacing on Date
  • A Horizontal line between posts (add <hr> element on HTML)
Now Let's start!

Step One: Create a HTML page

I create a simple blog page include two dates and two articles. I copied some paragraphs from my old digital analysis post.  The page only has text, and it doesn't look very attractive. 


Step Two: Style Your Body

I start to style the whole page body by adding a border. Since the instructor told us the border value, I just put the number in the CSS.


The Outcome:


We have the border around the body, but the border is too close to the content. We want have some spacing between the border and content, so we set the padding value to be 20px. And we also set the font-family to be "source sans pro".




As the result, we can see some inner space between the border and content, and the text font looks better than the old one. 

We also want the body box in the middle of the page, so we set the width with 700px, and margin 20px and auto. By the way, 20px is the margin top value, and auto is a default center value.



The result:


Step Three: Style The Date

After we done the body style, we are going to style the content. I begin from the top to the bottom, so style date first. 

There are two dates on the blog page, so I set the class attribute to be "date". 


In the CSS, we use class selector to set ".date" value. It required all the date letters are uppercase, so we set the text-transform to be uppercase. And we add the assigned color value and bold the text

Since there is a little space between each letter, so we set the letter-spacing value to be 0.2rem. REM refers to relative to font-size of the root element. (W3School)


The result:


Step Four: Style H2

I would like the h2 text bolder and font size to be 2.0 rem, so the title of each posts looks more outstanding.



The result:



Step Five: Add Left Border on First Paragraph

Since the first paragraph of each post has a left border, so I add the class attribute value as "one" on the first paragraph element. 



 In the CSS, I set the border-left and padding left value to the class ".one" selector.


The result:


Step Six: Style HR

The blog has a horizontal line between two posts. Therefore, I add <hr> element between the two posts on HTML page.


The result shows a horizontal line:



Now we want style the horizontal line and let it be special. I Google the "hr" style and select the hr style I like on the Simple Styles for <hr>'s


I copy the hr CSS code and paste on my CSS file.


The result:



Step Seven: Post Space

At last, we add some space between the horizontal line and the second post, so we set the margin for the post value to be 20px.


The result:


The final outcome:



Comments

Popular posts from this blog

Intermediate Express.js: How To Add Styles & Partials in EJS File?

So far, we only have simple HTML tags and ejs tags in each ejs file. Every template page has no style at all. And the basic HTML header and footer are also missing. Today, I learned how to add styles and partials in ejs file. Link Style Step One: Touch a Separate CSS file I create a new directory "Style" under the "EJSDemo" directory, then I add a new CSS file "app.css" inside "Style" folder. Step Two: Add app.use(express.static()) in the app.js I add app.use(express.static("style")) in the "app.js". This will tell Express.js to serve the content of "Style" directory. Step Three: Write styles in CSS file I simple give body an orange background color and set text color to be grey. Step Four: Link to CSS file in the EJS file I just add <link> tag to link the "app.css" file on the top of the h1 tag in each ejs template. As the result, when I run the app and...

Intermediate Express.Js: Write Conditions and Loops In The EJS (study note)

We continue to use the app.js which we have build to be the study example. In the last post, we only add a simple EJS tag <%= thingVar %> inside h1 tag. This will match the "thing" to any "thing" request from the user. If Statement Today, the course shows us to write a simple if statement in the EJS file. I learn to apply it to my own app. In the if statement, if users send"/wantto/workout" request, the page will show a new content "Good Idea!". We wrote the if statement in the "diet.ejs" file, and we add "<% %>" tags around the code. We have to wrap every line of JavaScript anytime JavaScript starts and ends. Moreover, you may see there are two types of ejs tags here: <%= %> The one with equal sign. According to the course, when we add equal sign, the value that is returned inside of the tag will be rendered to the HTML page. it will be added to the HTML. For example, if we write ...

Authentication Project: Secret Page App Part One (Set up & Create User Model)

So far we only write the RESTful routes to send request and redirect to the related page, but we haven't do anything about authentication. If we can sign up, login, and log out, it will make our app more meaningful. Therefore, the course shows us how to create a secret page app, which will allow us to sign up, login to a secret page, and logout. Since it requires so many pieces, I will divided this project into three parts: set up & create user model, sign up, and login/logout. In this post, I am going to show all the set up process. Set Up Step One: Install packages The first thing we are going to do to create a folder "Auth", and inside of "Auth", we need to create another folder "AuthDemo". Then we cd (change directory) to "AuthDemo". Now we can set up the actual application structure by installing a few packages: passport, passport-local, passport-local-mongoose, mongoose, express, ejs, body-parser, and express-session....