Hỏi - Đáp

Giáo viên trả lời:
Thuộc tính opacity dùng để chỉnh độ trong suốt cho đối tượng, nếu opacity là 1 thì là bình thường còn nếu ta giảm xuống ví dụ là 0.5 thì nó mờ đi (trong suốt 50%)

Còn thuộc tính !important sử dụng để thay đổi thứ tự ưu tiên của CSS, khi một quy luật nào đó được gán important thì nó sẽ có mức ưu tiên cao nhất, cho dù thành phần đó có khai báo CSS cục bộ.

Ví dụ ta có thành phần p được khai báo CSS cục bộ trong trang (dạng HTML CSS) như sau:

<p class="first" style="color: red">Đoạn văn bản bị ảnh hưởng bởi các quy luật của CSS</p>
Và bạn khai báo CSS ngoại tuyến như sau:

p.first{ color: green }
Thì đoạn văn bản trên luôn luôn được hiển thị với màu đỏ bởi vì được khai báo CSS cục bộ.

Sử dụng important để thay đổi thứ tự ưu tiên trong CSS

Vậy có cách nào để đoạn văn bản trên được hiển thị với màu xanh mà không phải chỉnh sửa CSS cục bộ, đó là lúc bạn cần sử dụng đến important.
Chỉnh sử lại đoạn mã trong CSS bên ngoài lại như sau:

p.first{ color: green !important }

Khi ta dùng các Extension để tạo thì Code phát sinh ra sẽ chuyên nghiệp hơn bạn (vì mấy cái Extension này là của các chuyên gia người ra viết dĩ nhiên là người ta biết rõ là phát sinh ra code như thế nào là tốt nhất) và khi ta dùng Extension thì nó có thể cho ta chỉnh giao diện ở chế độ Design 1 cách nhanh chóng mà không cần mở Code lên sửa rất mất thời gian do đó việc bảo hành trang web sẽ rất nhanh chỉ vài cái click chuột thôi. Extension khi phát sinh ra thì vẫn là Code thôi bạn, nếu bạn biết Code thì ta tự vào đó thêm bớt theo ý của mình. Trong lớp học Lành nghề thì các bạn học cả DESIGN + CODE luôn rồi do đó ai thích làm bên nào thì làm thôi thấy cái nào nhnh và dễ cho mình thì làm thôi. Khi bạn lập trình Code thì hầu như ta cũng sử dụng Code mẫu và cũng toàn Cut và PASTE không hà bạn, 

Tại sao nhiều bạn thấy Code Extension người ta viết ra là phức tạp? vì các đoạn Code này người tạo ra nó viết Pro hơn với các thuộc tính và Code rất Advance nhiều khi bạn chưa hiểu tới nhưng các đoạn Code này đều đã tới ưu và có kèm theo phần bảo mật. Còn khi bạn viết tay thường thì bạn chỉ viết theo cách đơn giản và cũng ít quan tâm tới việc viết thêm phần bảo mật cho Code, do đó Code viết tay thường rất bị lỗi SQL Injection rất nguy hiểm còn nếu bạn dùng các Extension thì bạn thấy nó sẽ có phát sinh thêm các đoạn Code chống các lỗi về bảo mật này còn các Code về CSS thì thường nó phát sinh cho việc chạy trên tất cả các trình duyệt và các thiết bị di động do đó nhiều khi bạn thấy rối, nhưng nếu bạn chịu khó dò và xem kỹ các thuộc tính của nó thì ta sẽ thấy rất hay.

Đó là một số nhận xét của tôi khi dùng Extension. Thường thì khi tôi làm website mà dùng Code 1 project tôi làm cho khách hàng thường khoảng 10-15 ngày (bao gồn thiết kế giao diện và Code) còn khi tôi nghiên cứu dùng Extension kết hợp với Code thì bây giờ tôi có thể làm project cho khách hàng khoảng 2 ngày 1 site.

Ví dụ site này tôi mới làm cho khách hàng 123muanhanh.vn tôi dùng bằng DW để làm (không viết Code) và tôi chỉ làm trong vòng 1 ngày. Bạn tham khảo thử site này đi nhé nếu bạn viết Code thỉ bạn làm trong bao lâu? khi nào bạn dùng rành các Extension rồi thì bạn sẽ thấy nó làm nhanh. Và website này cũng sẽ là một project trong lớp học Web Lành Nghề của các bạn sau này đó.

Nếu bạn không thích các Extension thì có thể tự mình viết code thêm vào cho website của mình thôi bạn vì Extension phát sinh ra tóm lại cũng là Code thôi bạn, nó chỉ giúp ta đỡ tốn thời gian gõ Code bằng tay thôi.

Giáo viên trả lời:
Nhiều khi do IP của cái modem của bạn nó đổi sang IP mới nên mới có 2 địa chỉ là vậy, bạn vào bằng trình duyệt nào thì nó cũng lấy 1 địa chỉ IP thôi bạn đó là địa chỉ IP của cái modem nhà bạn. Khi bạn học ở cơ quan thì địa chỉ khác vì ở đó cái mode nó có IP khác bạn, Hiện tại thì khi các bạn đăng nhập vào học thì tôi có viết chương trình thống kê theo tài khoản của các bạn, ví dụ tài khoản của bạn tên gì, ngày giờ vào học trong một này là bao nhiêu lần và IP của các bạn là địa chỉ nào, và một ngày bạn học bao nhiêu giờ, một tuần các bạn học bao nhiêu giờ vvv..Thường thì tôi sẽ thống kê là tài khoản của bạn trong cùng một giờ thì IP có thay đổi khác nhau không? và IP đó nằm ở vị trí địa lý nào. Nếu trong cùng một giờ mà địa chỉ của bạn vừa ở TPHCM vừa ở Hà Nội thì có thể tài khoản của bạn đã bị chia sẽ và nó sẽ bị admin gửi cảnh báo cho bạn để đổi tài password lại. Khi nào tôi phát hiện tài khoản của bạn có vấn đề thì tôi sẽ cảnh báo cho bạn. Còn bạn cứ tập trung lo học đi nhé, đừng quan tâm tới cái IP này.

Giáo viên trả lời:
Hiện tại thì HTML5 & CSS3 không thể thay thế hoàn toàn Flash được vì có một số cái nó làm không được trong khi Flash làm được và làm rất đẹp, nhưng Flash chỉ dỡ cái là chạy trên các thiết bị di động rất khó vì phải cài thêm Plugin vào và sẽ làm tốn pin các thiết bị này. Hiện nếu ta làm web thì các Banner quảng cáo trên web khi chạy trên Desktop thì ta vẫn dùng Flash thì đ5p hơn còn khi chạy trên di động thì ta bỏ nó đi thôi. 

Sau này thì có thể Flash sẽ không còn dùng nữa bạn nếu như HTML5 phát triễn mạnh, hiện tại thì cũng sắp có phiên bản mới của HTML6 và CSS4 chắc là sẽ có nhiều cái hay hơn nữa đó. 

Giáo viên trả lời:
Đã sửa và gửi bài cho bạn qua email, hãy kiểm tra email

Giáo viên trả lời:
Nguyên tắc là khi update thì nó sẽ cập nhật lại cái cũ bằng cái mới thì cái cũ phải xoá bớt đi để không bị dư rác trên hosting là đúng Logic rồi.
Kiểm tra trong Tab Server Behavior có lệnh Delete Files hay không, nếu có thì xoá bỏ lệnh này đi 

Giáo viên trả lời:

Nếu muốn bỏ mã số category thì mỗi danh mục ta phải tạo từ khoá cho nó, và khi lọc ta sẽ lọc theo khoá thay vì lọc theo cho ID_theloai.
Chòn chi tiết bài viết thí bắt buộc phải truyền mã số nếu muốn đếm solandoc, còn dạng 1-ten-bai-viet.html nó lọc không ra được id của bài viết có thể là do sau id có thêm dấu - do đó theo tôi thì phải viết code bỏ dấu - sau id thì có thể nó sẽ lọc ra được id của bài viết đó.
Vấn đề là ta thêm thư mục ảo phía trên tiêu đề bài viết thì cũng không ảnh hưởng gì đến vấn đề SEO link đâu vì ta SEO tiêu đề bài viết.
Phải dùng từ khoá thay cho ID_theloai thì mới ra được tin cùng loại loại được và lúc đó tin cùng loại sẽ lọc theo keyword chứ không lọc theo ID_theloai nữa.

Giáo viên trả lời:
http://news.mafada.vn/thoi- trang-nu/post13/bo-suu-tap-ao- so-mi-dai-tay-mua-thu-2014- cua-cac-quy-co-cong-so.html


Bạn viêt thử như vậy thử xem

Giáo viên trả lời:
Trong link rewrite bắc buộc phải có truyền id của tin tức lên thì nó mới get được thì nó mới tăng. Trong link của bạn thấy không có id của tin tức .

Trong đây chỗ post 461504 chính là id của tin tức, bạn đặt id này ở đâu cũng được trong link rewrite

Giáo viên trả lời:


Lỗi này thường có các nguyên nhân sau:
+ Cấu trúc thẻ không đối xứng (kiểm tra lại đã có thẻ kết thúc cho thẻ section này hay chưa.
+ Mấy cái chú thích để bên dưới và bên trên đừng có để ngang với cái thẻ nhiều khi dreamweaver nó không hiểu nên nó cảnh báo

Bạn gửi trang qua cho tôi xem thử để tìm nguyên nhân lỗi cho bạn.

Giáo viên trả lời:
Các hiệu ứng CSS3 này chỉ khác nhau chút đỉnh thôi bạn, đây là các kiểu hoạt hình khác nhau của CSS3. Bạn có thể tham khảo thêm mỗi kiểu hiệu ứng này nó chạy khác nhau như thế nào ở trang này http://matthewlein.com/ceaser/

(#154) -chao thay. trong bai thiết kế giao diện web bằng CSS3 - CSS3 Animations (Bài 10 - Phần 3) em da lam nhu huong dan trong video nhung phan hieu ung chi chay duoc voi trinh duyet chrome con ie(ie11) va firefox(ff30) thi ko dc. day la code cua em thay xem hoem co bi sai cho nao ko em da them cac tiet dau ngu -moz va -o vao phia trc @keyframes nhung ko dc div{ width:150px; height:150px; background: red; margin:100px; position:relative; text-align:center; line-height:150px; animation: myfirst 5s linear 2s infinite alternate running; -webkit-animation: myfirst 5s linear 2s infinite alternate running; } @keyframes myfirst{ /*from{background:red;transform:rotate(60deg);} to{background:yellow;transform:rotate(360deg)}*/ 0%{background:red;left:0px;top:0px;transform:rotate(15deg);} 25%{background:yellow;left:200px;top:0px;transform:rotate(60deg);} 50%{background:blue;left:200px;top:200px;transform:rotate(90deg);} 75%{background:green;left:0px;top:200px;transform:rotate(180deg);} 100%{background:red;left:0px;top:0px;transform:rotate(360deg);} } @-webkit-keyframes myfirst{ /*from{background:red;-webkit-transform:rotate(60deg);} to{background:yellow;-webkit-transform:rotate(360deg);}*/ 0%{background:red;left:0px;top:0px;-webkit-transform:rotate(15deg)} 25%{background:yellow;left:200px;top:0px;-webkit-transform:rotate(60deg)} 50%{background:blue;left:200px;top:200px;-webkit-transform:rotate(90deg)} 75%{background:green;left:0px;top:200px;-webkit-transform:rotate(180deg)} 100%{background:red;left:0px;top:0px;-webkit-transform:rotate(360deg)} } @-moz-keyframes myfirst{ /*from{background:red;-moz-transform:rotate(60deg);} to{background:yellow;-moz-transform:rotate(360deg);}*/ 0%{background:red;left:0px;top:0px;-moz-transform:rotate(15deg)} 25%{background:yellow;left:200px;top:0px;-moz-transform:rotate(60deg)} 50%{background:blue;left:200px;top:200px;-moz-transform:rotate(90deg)} 75%{background:green;left:0px;top:200px;-moz-transform:rotate(180deg)} 100%{background:red;left:0px;top:0px;-moz-transform:rotate(360deg)} } @-o-keyframes myfirst{ /*from{background:red;-o-transform:rotate(60deg);} to{background:yellow;-o-transform:rotate(360deg);}*/ 0%{background:red;left:0px;top:0px;-o-transform:rotate(15deg)} 25%{background:yellow;left:200px;top:0px;-o-transform:rotate(60deg)} 50%{background:blue;left:200px;top:200px;-o-transform:rotate(90deg)} 75%{background:green;left:0px;top:200px;-o-transform:rotate(180deg)} 100%{background:red;left:0px;top:0px;-o-transform:rotate(360deg)} }
Học viên: dangcaoson

Giáo viên trả lời:
Trong phần định nghĩa -moz-animation bạn bỏ animation-play-state running đi. Xem ví dụ bên dưới

div
{
width:200px;
height:200px;
text-align:center;
line-height:200px;
position:relative;
background:#F00;
/*animation:myfirst 5s infinite; */
animation: myfirst 5s linear 2s infinite alternate running;
-moz-animation:myfirst 5s linear 2s infinite alternate; /*Firefox*/
-webkit-animation:myfirst 5s linear 2s infinite alternate running; /*Chrome & Safari*/

}
@keyframes myfirst
{
0% {background:red;left:0px;top:0px;tranform:rotate(15deg);}
25% {background:yellow;left:200px;top:0px;tranform:rotate(60deg);}
50% {background:blue;left:200px;top:200px;tranform:rotate(90deg);}
75% {background:grenn;left:0px;top:200px;tranform:rotate(180deg);}
100% {background:red;left:0px;top:0px;tranform:rotate(360deg);}
}
@-moz-keyframes myfirst /*Firefox*/
{
0% {background:red;left:0px;top:0px;-moz-transform:rotate(15deg);}
25% {background:yellow;left:200px;top:0px;-moz-transform:rotate(60deg);}
50% {background:blue;left:200px;top:200px;-moz-transform:rotate(90deg);}
75% {background:grenn;left:0px;top:200px;-moz-transform:rotate(180deg);}
100% {background:red;left:0px;top:0px;-moz-transform:rotate(360deg);}
}
@-webkit-keyframes myfirst /*Chrome & Safari*/
{
0% {background:red;left:0px;top:0px;-webkit-transform:rotate(15deg);}
25% {background:yellow;left:200px;top:0px;-webkit-transform:rotate(60deg);}
50% {background:blue;left:200px;top:200px;-webkit-transform:rotate(90deg);}
75% {background:grenn;left:0px;top:200px;-webkit-transform:rotate(180deg);}
100% {background:red;left:0px;top:0px;-webkit-transform:rotate(360deg);}
}

Giáo viên trả lời:
Nếu làm 3 cấp và có thanh toán Online & tất cả các hình thức thanh toán khác như : tiền mặt, chuyển khoản, ngân lượng, bảo kim vvv.. và tất cả các module cho site bán hàng & SEO, công nghệ mới HTML5,CSS3 và làm chạy được trên di động luôn thì giá làm khoảng 3 tr được rồi.

Giáo viên trả lời:
OK, chủ nhật này đi nhé, đi uống cafe rồi bàn luôn, có gì Alo cho tôi nhe.

Giáo viên trả lời:



Nhìn cái menu gì mà rối quá vậy? đưa cho người dùng làm sau họ biết quản lý đây?

Giáo viên trả lời:
Chúc mừng bạn. Rất vui khi thấy bạn đã làm chạy rồi.

Giáo viên trả lời:
Ví dụ: <li class="sub"><a href="#"><i class="icon-cog"></i>Sản phẩm</a>


Nếu muốn hiện danh mục con khi chạy trên di động thì danh mục cha sẽ không được đặt link trong thẻ a (href sẽ bằng #) và trong thẻ li ta phải có class sub. Bạn xem ví dụ như mẫu trên.

Giáo viên trả lời:
Trong trang menu có 2 dòng script


<script type="text/javascript" src="../../scripts/jquery.min. js"></script>
<script type="text/javascript" src="../../scripts/flatmenu- responsive.js"></script>

Dòng chỉ đường dẫn tới tập tin jquery.min.js không được phép bỏ, nếu bỏ thì không chạy được trên di động. Và nhớ kiểm tra đường dẫn tới 2 tập tin này đúng hay chưa

Giáo viên trả lời:
Nếu chúng ta viết gộp thì dĩ nhiên code ngắn hơn thì nó sẽ chạy nhanh hơn vì tập tin css của ta dung lượng lúc lưu sẽ nhẹ. Nhưng cách viết gộp thì nhìn code sẽ khó hiểu hơn và viết sẽ khó hơn.

Giáo viên trả lời:
Đã gửi bài LAB này cho bạn rồi đó, về làm thử đi, có gì gửi câu hỏi để được hướng dẫn

Giáo viên trả lời:
Bảng này chứa các chuyên đề, thường một tin tức thì có thể nó sẽ thuộc một chuyên đề nào đó do đó trong bảng tintuc ta có khoá ngoại ID_nhomtin bỏ vào. Sau này khi click vào 1 chuyên đề thì ta sẽ ra các tin tức thuộc chuyên đề này. Còn trong bảng nhomtin có 2 trường ID_theloai và ID_theloaitin để cho biết chuyên đề này thuộc chuyên đề cấp 1 hay chuyên đề cấp 2. Ví dụ trong Thể thao có chuyên đề A,B,C và trong Thể thao->Bóng đá lãi có các chuyên đề con bên trong nữ A1,B1,C1.

Xem demo ở đây