Tài tiệu hướng dẫn thiết kế responsive website

19
TÀI LIỆU HƯỚNG DẪN Thiết kế web tương thích nhiều thiết bị RESPONSIVE WEB DESIGN Sinh viên thực hiện: Nguyễn Đức Tuấn HEDSPI – AS K55 – 20102429 Trang 1/19 – Software Requirements Specification Nguyễn Đức Tuấn 20102429 - HEDSPI - AS – K55 – ĐH Bách Khoa Hà Nội

Transcript of Tài tiệu hướng dẫn thiết kế responsive website

TÀI LIỆU HƯỚNG DẪN

Thiết kế web tương thích nhiều thiết bị

RESPONSIVE WEB DESIGN

Sinh viên thực hiện: Nguyễn Đức TuấnHEDSPI – AS K55 – 20102429

Trang 1/19 – Software Requirements Specification

Nguyễn Đức Tuấn20102429 - HEDSPI - AS – K55 – ĐH Bách Khoa Hà Nội

MỤC LỤC

1 GIỚI THIỆU...............................................................3

2 CÁC KHÁI NIỆM TRONG THIẾT KẾ WEB HIỆN ĐẠI................................3

2.1 KHÁI NIỆM VỀ RESPONSIVE WEB DESIGN...................................3

2.2 ĐỘ PHÂN GIẢI MÀN HÌNH................................................4

2.3 FLEXIBLE LAYOUT......................................................6

2.4 FILAMENT GROUP’S RESPONSIVE IMAGES...................................7

2.5 MEDIA QUERIES........................................................8

2.6 Ẩn hoặc hiển thị nội dung............................................8

2.7 TOUCHESCREEN VS. CURSORS.............................................9

3 THIẾT KẾ GIAO DIỆN RESPONSIVE TRONG 3 BƯỚC..............................10

3.1 - Bước 1 : Meta Tag.................................................12

3.2 - Bước 2 : HTML.....................................................12

3.3 - Bước 3 :CSS-Media Queries.........................................14

4 TỔNG KẾT................................................................17

Trang 2/19 – Software Requirements Specification

Nguyễn Đức Tuấn20102429 - HEDSPI - AS – K55 – ĐH Bách Khoa Hà Nội

1 GIỚI THIỆU

Sự phát triển nhanh chóng của các tablet pc và mạng 3G

đặt ra một yêu cầu chính đáng cho những người thiết kế web:

giao diện trang web phải thích nghi được trên từng loại

thiết bị dù cho người đó dùng Iphone, iPad, netbook,

BlackBerry, Kindle hay những chiếc điện thoại di động có

màn hình nhỏ. Và trong 5 năm tới sẽ còn rất nhiều thiết bị

được đưa ra thị trường với vô vàng các ràng buộc mới và

nhiều kích thước màn hình khác nhau, bài toán này sẽ làm

những người thiết kế tiếp tục đau đầu trong thời gian sắp

tới.

Phát triển nhiều phiên bảng khác nhau cho từng thiết

bị? Rõ ràng đó không phải là một lựa chọn tốt, bởi với vô

vàng các thiết bị hiện tại đã khiến chúng ta phải mệt mỏi

để hỏ trợ từng đấy thiết bị chưa tính đến những năm sau khi

“thời của tablet” lên đến đỉnh điểm. Vậy bạn phải hy sinh

một lượng người dùng trên một vài loại thiết bị nào đó hay

có còn một lựa chọn nào khác?

Responsive web design (tạm dịch thiết kế thích nghi) là

một khái niệm khuyến cáo những người thiết kế và người phát

triển phải đáp ứng và thích nghi được với môi trường (hay

thiết bị) của người dùng về kích thước màn hình, platform,

trạng thái xoay hay đứng.

Trang 3/19 – Software Requirements Specification

Nguyễn Đức Tuấn20102429 - HEDSPI - AS – K55 – ĐH Bách Khoa Hà Nội

2 CÁC KHÁI NIỆM TRONG THIẾT KẾ WEB HIỆN ĐẠI

2.1 KHÁI NIỆM VỀ RESPONSIVE WEB DESIGN

Trong ngành thiết kế responsive architecture không phải

là khái niệm xa lạ, bạn có bao giờ để ý đến những cánh cửa

tự động đóng mở, nó sẽ tự động mở ra một khoản không gian

vừa đủ cho một người hoặc nhóm người bước vào. Một hệ thống

điều chỉnh điều hòa và ánh sáng tự động điều tiết nhiệt độ

và ánh sáng tùy theo số lượng người đang có trong phòng…

Responsive web design không phải là ý tưởng hoàn toàn

mới, nó kế thừa và tương tự như responsive architecture,

trang web khi được thiết kế phải có khả năng tự động điều

chỉnh để thích nghi với nhiều nhóm người sử dụng khác nhau.

Hiển nhiên một điều chúng ta không thể dùng một cảm biến

hoặc một chip thông minh như cách mà người ta làm khi xây Trang 4/19 – Software Requirements Specification

Nguyễn Đức Tuấn20102429 - HEDSPI - AS – K55 – ĐH Bách Khoa Hà Nội

dựng cửa tự động hay hệ thống nhà thông minh. Chúng ta phải

nhìn nhận nó một cách khá trừu tượng. Hiện tại, một vài ý

tượng đã được sử dụng: fluid layout, media queries và

script có thể định dạng lại trang web và mark-up khá tốt.

Bạn cũng nên nhớ rằng responsive web design không chỉ là

việc tùy chỉnh cho phù hợp với kích thước màn hình và

resize lại hình ảnh, nó mở ra một cách nghĩ hoàn toàn mới

về thiết kế. Chúng ta sẽ lượt qua những ý tưởng đã được sử

dụng và những ý tưởng đang còn nằm trên bàn giấy.

2.2 ĐỘ PHÂN GIẢI MÀN HÌNH

Càng nhiều thiết bị, càng nhiều độ phân giải khác nhau,

sự phổ biến của những thiết bị như iPhone, iPad và các

smartphone có thể chuyển từ dạng xem ngang và đứng một cách

nhanh chóng.

Trang 5/19 – Software Requirements Specification

Nguyễn Đức Tuấn20102429 - HEDSPI - AS – K55 – ĐH Bách Khoa Hà Nội

Thêm nữa khi thiết kế cho cả màn hình nằm ngang và màn

hình đứng, chúng ta phải tính đến hàng trăm kích thước màn

hình khác nhau. Ta có thể nhóm một số kích thước lại với

nhau và thiết kế cho từng nhóm một, và thiết kế riêng cho

từng nhóm này nếu cần thiết. Bên cạnh đó bạn cũng phải biết

rằng khá nhiều người dùng không bao giờ maximize trình

duyệt của mình.

2.3 FLEXIBLE LAYOUT

Một vài năm trước, khi flexible layout còn là thứ gì đó

xa xỉ đối với website. Thứ duy nhất flexible trong thiết kế

là số lượng cột và text. Ảnh có thể dễ dàng làm “vỡ” cấu

trúc website. Việc thiết kế trên một khoảng kích thước tính

bằng pixel khiến người thiết kế lúng túng khi trang web

chuyển giữa các kích thước khung hình khác nhau.

Trang 6/19 – Software Requirements Specification

Nguyễn Đức Tuấn20102429 - HEDSPI - AS – K55 – ĐH Bách Khoa Hà Nội

Hình ảnh cần phải được tự động điều chỉnh và không được

phép làm vỡ cấu trúc website, vì ta không làm một sản phẩm

in ấn. Khi kích thước ảnh không bị fix ở một giá trị nào

đó, nó mang lại nhiều lợi ích hơn mong đợi, ý tưởng tuyệt

vời cho những những thiết bị có thể xoay ngang và đứng.

Trang web trên được thiết kế bằng cách sử dụng markup

một cách thông minh, fluid grid, fluid image. Có thể tham

khảo thêm những bài viết sau:

Hiding and Revealing Portions of Images Creating Sliding Composite Images Foreground Images That Scale With the Layout Flexible Web Design: Creating Liquid and Elastic

Layouts with CSS (book), Zoe Mickley Gillenwater

Trang 7/19 – Software Requirements Specification

Nguyễn Đức Tuấn20102429 - HEDSPI - AS – K55 – ĐH Bách Khoa Hà Nội

2.4 FILAMENT GROUP’S RESPONSIVE IMAGES

Kỹ thuật này được giới thiệu bới Filement Group, theo đó

thay vì resize lại hình ảnh, sẽ load hẳn một ảnh khác khi

cần, cách này có thể tiết kiệm được việc load ảnh lớn ko

cần thiết với các thiết bị nhỏ xem demo tại đây.

1 <img src="smallRes.jpg" data-fullsrc="largeRes.jpg">Trang 8/19 – Software Requirements Specification

Nguyễn Đức Tuấn20102429 - HEDSPI - AS – K55 – ĐH Bách Khoa Hà Nội

2.5 MEDIA QUERIES

CSS 3 vẫn hổ trợ đầy đủ media type từ CSS2.1 như screen,

print, handheld, và đã bổ sung khá nhiều khai báo mới như

max-width, device-width, orientation, color. May mắn thay

những thiết bị chạy android, ipad đều không sử dụng trình

duyệt IE!!! nên bạn an tâm khi sử dụng những thuộc tính css

3.

1 <link rel="stylesheet" media="screen and (max-width: 600px)" type="text/css" href="shetland.css" />

2.6 Ẩn hoặc hiển thị nội dung

Rõ ràng việc chỉ hiển thị những nội dung thật sự cần

thiết trên những thiết bị có kích thước nhỏ là cần thiết,

kinh nghiệm cho thấy trên các thiết bị di động bạn chỉ nên

có một thanh navigation đơn giản, nhấn mạnh nội dung, xem

dạng list niều dòng tốt hơn là chia thành nhiều cột.

Trang 9/19 – Software Requirements Specification

Nguyễn Đức Tuấn20102429 - HEDSPI - AS – K55 – ĐH Bách Khoa Hà Nội

2.7 TOUCHESCREEN VS. CURSORS

Màn hình cảm ứng ngày càng phổ biến. Những thiết bị có

màn hình cảm ứng thường có kích thước nhỏ, rõ ràng bạn phải

thấy được rằng việc tương tác qua ngón tay cần một khoản

không gian lớn hơn như khi dùng chuột, màn hình cảm ứng

cũng chẳng hề có trạng thái hover khi gì bạn chỉ có chạm và

chạm

Trang 10/19 – Software Requirements Specification

Nguyễn Đức Tuấn20102429 - HEDSPI - AS – K55 – ĐH Bách Khoa Hà Nội

3 THIẾT KẾ GIAO DIỆN RESPONSIVE TRONG 3 BƯỚC

Trang 11/19 – Software Requirements Specification

Nguyễn Đức Tuấn20102429 - HEDSPI - AS – K55 – ĐH Bách Khoa Hà Nội

Ngày nay, do sự phát triển chóng mặt của các smartphone

và tablet, nên ta cần phải làm sao cho website hiển thị tốt

trên mọi thiết bị có kích thước khác nhau, bên cạnh đó cũng

có nhiều người dùng không bao giờ maximize trình duyệt của

họ. Để đáp ứng được nhu cầu đó hiện tại 2 cách làm phổ

biến:

Một là người lập trình sẽ viết code nhận diện thiết bị

người dùng đang sử dụng, rồi sẽ đưa họ đến trang được

thiết kế dành riêng cho thiết bị của họ. Thường sử dụng

javascript để thực hiện điều này.

Hai là sử dụng responsive design, responsive là kiểu

giao diện co giãn theo kích thước của cửa sổ trình

duyệt.

Trang 12/19 – Software Requirements Specification

Nguyễn Đức Tuấn20102429 - HEDSPI - AS – K55 – ĐH Bách Khoa Hà Nội

Các bước dưới đây mô tả cách thực hiện thứ 2: sử dụng

responsive design, responsive là kiểu giao diện co giãn

Trang 13/19 – Software Requirements Specification

Nguyễn Đức Tuấn20102429 - HEDSPI - AS – K55 – ĐH Bách Khoa Hà Nội

theo kích thước của cửa sổ trình duyệt, cũng là xu hướng

thiết kế web của năm nay.

3.1 - Bước 1 : Meta Tag

Tag meta viewport là điều tất yếu trong responsive

layouts. Nó thiết lập màn hình theo tỷ lệ 1×1, điều này sẽ

loại bỏ các chức năng mặc định từ các trình duyệt

smartphone, chỉ hiển thị vừa màn hình để xem và có thể

phóng to bằng thao tác tay, thêm vào trong thẻ <head>.

HTML Code:

<meta name="viewport" content="width=device-width, initial-

scale=1.0">

Trình duyệt IE8 trở xuống không hỗ trợ media query. Bạn có

thể sử dụng media-queries.js hoặc respond.js để hỗ trợ.

HTML Code:

<!--[if lt IE 9]>

<script src="http://css3-mediaqueries-js.googlecode.com/svn/trunk/css3-

mediaqueries.js"></script><![endif]-->

3.2 - Bước 2 : HTML

Trong ví dụ này, có một bố cục trang cơ bản với một

#header, #content nội dung, #sidebar, và #footer. Tiêu đề

có height 180px cố định, nội dung #content width là 600px

và #sidebar width là 300px.Trang 14/19 – Software Requirements Specification

Nguyễn Đức Tuấn20102429 - HEDSPI - AS – K55 – ĐH Bách Khoa Hà Nội

HTML Code:

<div id="pagewrap">

<div id="header">

<h1>Header</h1>

</div>

<div id="content">

<h2>Content</h2>

</div>

<div id="sidebar">Trang 15/19 – Software Requirements Specification

Nguyễn Đức Tuấn20102429 - HEDSPI - AS – K55 – ĐH Bách Khoa Hà Nội

<h3>Sidebar</h3>

</div>

<div id="footer">

<h4>Footer</h4>

</div>

</div>

3.3 - Bước 3 :CSS-Media Queries

Đầu tiên, CSS cho các div trên

Code:

#pagewrap {

padding: 5px;

width: 960px;

margin: 20px auto;

}

#header {

height: 180px;

}

#content {

width: 600px;

float: left;

}

#sidebar {

width: 300px;

float: right;

Trang 16/19 – Software Requirements Specification

Nguyễn Đức Tuấn20102429 - HEDSPI - AS – K55 – ĐH Bách Khoa Hà Nội

}

#footer {

clear: both;

}

Sử dụng CSS3 media query, với viewport từ 980px trở

xuống, màn hình sẽ hiển thị 2 cột với width của #content là

65% và #sidebar là 30%

Code:

/* 980px hoặc nhỏ hơn */

@media screen and (max-width: 980px) {

#pagewrap {

width: 94%;

}

#content {

width: 65%;

}

#sidebar {

width: 30%;

}

}

Và với viewport 700px trở xuống , ta set giá trị width

của #content và #siderbar là auto, bỏ float đi để hiển thị

Trang 17/19 – Software Requirements Specification

Nguyễn Đức Tuấn20102429 - HEDSPI - AS – K55 – ĐH Bách Khoa Hà Nội

1 cột full width

Code:

/* 700px hoặc nhỏ hơn */

@media screen and (max-width: 700px) {

#content {

width: auto;

float: none;

}

#sidebar {

width: auto;

float: none;

}

}

Cuối cùng, với viewport 400px trở xuống(mobile),ta set

lại height #header auto, thay đổi font chữ h1 xuống 24px,

và cho ẩn luôn sidebar

Code:

/* 480px hoặc nhỏ hơn */

@media screen and (max-width: 480px) {

#header {

height: auto;

}Trang 18/19 – Software Requirements Specification

Nguyễn Đức Tuấn20102429 - HEDSPI - AS – K55 – ĐH Bách Khoa Hà Nội

h1 {

font-size: 24px;

}

#sidebar {

display: none;

}

}

Bạn có thể viết bao nhiêu media query tuỳ ý ,trong ví dụ

này chỉ viết 3 media queries.

4 TỔNG KẾT

Web design không đơn thuần là tạo ra sản phẩm đẹp trong

mắt người dùng mà còn là công việc tạo ra trải nghiệm mới

cho người dùng. Responsive web design nếu được implement

tốt sẽ tăng trải nghiệm người dùng những không thể giải

quyết cho tất cả mọi người dùng mọi loại thiết bị, mọi nền

tảng, nó sẽ còn được tiếp tục cải thiện trong nhiều năm

tới, nhưng bạn có thể áp dụng nó ngay hôm nay cho những dự

án mới.

Trang 19/19 – Software Requirements Specification

Nguyễn Đức Tuấn20102429 - HEDSPI - AS – K55 – ĐH Bách Khoa Hà Nội