10/10/2018, 11:16

Xin giúp đỡ - Không dùng css cho một số tag

Mình đang viết 1 ứng dụng struts2. Và kiếm trên mạng được 1 template website mang về xài và chỉnh sửa lại. Nhưng về css mình rất tệ, nên khi mình viết jquery hiện 1 cái dialog nó sẽ áp dụng css và bị bể.




Nhưng nếu mình thử viết một jsp khác không xài css nữa thì ra dialog bình thường:



Vậy có cách nào ở tag div show diaglog này mình ko sử dụng css đã khai báo ở head được không ?
Đây là template mình xài, file css là screen.css

http://www.mediafire.com/?0y0qhq68gyle85v
zmt264 viết 13:22 ngày 10/10/2018
Trước tiên xin lỗi bạn vì vào topic mà không giúp được bạn vì không có nhiều time, nhưng xin phép đóng góp 1 lời khuyên: làm JS mà ko giỏi CSS thì là 1 thiệt thòi rất lớn, làm jQuery mà không giỏi CSS còn thiệt thòi lớn hơn nhiều vì ngay cả việc "query" thì jQuery cũng làm theo kiểu CSS Selector.

Nếu bạn bỏ thời gian ra học CSS thì đó là việc làm có ý nghĩa nếu sau này còn động vào jQuery.
ngoc_viet08 viết 13:23 ngày 10/10/2018
tag nào sinh ra cái là mang theo 1 đống css mặc định tùy browser rùi.

mún loại css khỏi tag thì viết thêm css theo ý mình đè lên chứ chẳng có cách nào loại css ra khỏi tag cả.
thanhhuy89vn viết 13:31 ngày 10/10/2018
Cám ơn 2 bạn zmt264 và ngoc_viet08 đã góp ý,

Đúng như bạn nói, mình viết jquery toàn là copy một cách từa lưa và ko hiểu rõ, nên cái ý trên mình ko hiện dialog show cái tree nữa, do lỗi CSS như trên và mình viết javascript để nhận sự kiện clickTopics vào cái tree không đc (do cái tree nó nằm trên dialog box nên ko biết xử lý ra sao)

Thay vào đó mình tạm thời chỉ xài một combobox để thể hiện danh sách thôi.

Nếu có thời gian thì mình sẽ học lại cơ bản hơn
gyarcier viết 13:22 ngày 10/10/2018
Tớ phát hiện cái này hay hay :

HTMLElementObject.setAttribute('style', '');

sẽ loại bỏ mọi thuộc tính CSS của HTMLElementObject.
ngoc_viet08 viết 13:29 ngày 10/10/2018
Được gửi bởi gyarcier
Tớ phát hiện cái này hay hay :

HTMLElementObject.setAttribute('style', '');

sẽ loại bỏ mọi thuộc tính CSS của HTMLElementObject.
các thuộc tính css ko thể mất đi mà chỉ chuyển sang dạng khác bạn ơi

giờ bạn thử trình diễn chữ "Trang chủ" với font-family : 'ko có font nào cả' và font-size:'ko có kích cỡ' xem sao
gyarcier viết 13:28 ngày 10/10/2018
Dạo trước tớ viết 1 cái hàm dùng để tạo bóng đổ và rounded border như thế này :

Code:
Gy.RBAS = function(corners, shadow, obj){
	var sStyle='';
	var tl=tr=bl=br=5;
	var sx=sy=sb=0,sc='#000';
		if(Gy.isNumber(corners)){
			tl=tr=bl=br=corners;
		}
		else if(Gy.isArray(corners) && corners.length==4){
			tl=corners[0];tr=corners[1];bl=corners[2];br=corners[3];			
		}
		if(shadow && Gy.isBoolean(shadow) && Gy.isTrue(shadow)){
			sx=2,sy=4,sb=5,sc='#000';
		}
		else if(shadow && Gy.isArray(shadow) && shadow.length==4){
			sx=shadow[0];sy=shadow[1];sb=shadow[2];sc=shadow[3];			
		}
		if(Gy.userAgent.Webkit){
			sStyle+=(tl>0)?'-webkit-border-top-left-radius:'+tl+'px;':'';
			sStyle+=(tr>0)?'-webkit-border-top-right-radius:'+tr+'px;':'';
			sStyle+=(bl>0)?'-webkit-border-bottom-left-radius:'+bl+'px;':'';
			sStyle+=(br>0)?'-webkit-border-bottom-right-radius:'+br+'px;':'';
			sStyle+=(!shadow?'':'-webkit-box-shadow:'+sx+'px '+sy+'px '+sb+'px '+sc+';');
		}
		else if(Gy.userAgent.Gecko){
			sStyle+=(tl>0)?'-moz-border-radius-topleft:'+tl+'px;':'';
			sStyle+=(tr>0)?'-moz-border-radius-topright:'+tr+'px;':'';
			sStyle+=(bl>0)?'-moz-border-radius-bottomleft:'+bl+'px;':'';
			sStyle+=(br>0)?'-moz-border-radius-bottomright:'+br+'px;':'';
			sStyle+=(!shadow?'':'-moz-box-shadow:'+sx+'px '+sy+'px '+sb+'px '+sc+';');
		}
		else{
			sStyle+=(tl>0)?'border-top-left-radius:'+tl+'px;':'';
			sStyle+=(tr>0)?'border-top-right-radius:'+tr+'px;':'';
			sStyle+=(bl>0)?'border-bottom-left-radius:'+bl+'px;':'';
			sStyle+=(br>0)?'border-bottom-right-radius:'+br+'px;':'';
			if(Gy.userAgent.IE){
				sStyle+=(!shadow?'':'filter:progid:DXImageTransform.Microsoft.DropShadow(OffX='+sx+', OffY='+sy+', Color="'+sc+'", Positive="true")');
			}
			else{
				sStyle+=(!shadow?'':'box-shadow:'+sx+'px '+sy+'px '+sb+'px '+sc+';');
			}
		}
	if(!obj){
		return sStyle;
	}
	else{
		Gy.setStyle(obj, sStyle);
	}
};
Hàm này set 1 chuỗi CSS và gán vào thuộc tính style của element. Khi đem dùng thì các thuộc tính trước đó bay mất hết. Chỉ có thể gọi nó trước khi thiết lập các thuộc tính CSS khác. Thế nên tớ nghĩ là nếu cho vào 1 chuỗi rỗng thì tự động các thuộc tính đã gán trước đó không còn tác dụng nữa.
amida viết 13:29 ngày 10/10/2018
@Thanhhuy89vn: mình vẫn chưa rõ vấn đề của bạn nằm ở đâu, nên nếu bạn giải thích kĩ hơn 1 chút kèm với code thì có thể mình sẽ giúp được

các thuộc tính css ko thể mất đi mà chỉ chuyển sang dạng khác bạn ơi
Chính xác hơn là chuyển từ cấp cao hơn xuống cấp thấp hơn nếu dựa đúng theo nghĩa cascading của stylesheet.

Nên nhớ là author-specified style -> user-specified style -> browser-default style. Browsers sẽ dựa trên CSS properties xác định bởi developers trước, nếu không có gì được set thì nó sẽ dựa trên style mặc định của browser, do đó việc loại bỏ CSS sẽ thấy mọi thứ hiển thị khác nhau ở các browsers khác nhau.

Tớ phát hiện cái này hay hay :

HTMLElementObject.setAttribute('style', '');

sẽ loại bỏ mọi thuộc tính CSS của HTMLElementObject.
Loại bỏ inline css properties hay embedded css properties?

Hàm này set 1 chuỗi CSS và gán vào thuộc tính style của element. Khi đem dùng thì các thuộc tính trước đó bay mất hết. Chỉ có thể gọi nó trước khi thiết lập các thuộc tính CSS khác. Thế nên tớ nghĩ là nếu cho vào 1 chuỗi rỗng thì tự động các thuộc tính đã gán trước đó không còn tác dụng nữa.
Không rõ function setStyle của bạn là gì vì không đề cập. Nếu dựa trên những gì bạn nói thì thực ra nó override các CSS properties của các elements, và tại sao khi gọi nó trước thì sẽ không bị ảnh hưởng, là bởi vì các CSS properties của các elements sẽ append lên nó. Tuy nhiên cái này không liên quan đến thứ tự cascading
zmt264 viết 13:19 ngày 10/10/2018
Được gửi bởi amida
@Thanhhuy89vn: mình vẫn chưa rõ vấn đề của bạn nằm ở đâu, nên nếu bạn giải thích kĩ hơn 1 chút kèm với code thì có thể mình sẽ giúp được



Chính xác hơn là chuyển từ cấp cao hơn xuống cấp thấp hơn nếu dựa đúng theo nghĩa cascading của stylesheet.

Nên nhớ là author-specified style -> user-specified style -> browser-default style. Browsers sẽ dựa trên CSS properties xác định bởi developers trước, nếu không có gì được set thì nó sẽ dựa trên style mặc định của browser, do đó việc loại bỏ CSS sẽ thấy mọi thứ hiển thị khác nhau ở các browsers khác nhau.



Loại bỏ inline css properties hay embedded css properties?



Không rõ function setStyle của bạn là gì vì không đề cập. Nếu dựa trên những gì bạn nói thì thực ra nó override các CSS properties của các elements, và tại sao khi gọi nó trước thì sẽ không bị ảnh hưởng, là bởi vì các CSS properties của các elements sẽ append lên nó. Tuy nhiên cái này không liên quan đến thứ tự cascading
amida tìm hiểu sâu về CSS nhỉ

Xem thêm 1 số slide về đề tài này:

http://www.slideshare.net/maxdesign/...ystep-tutorial

còn cái slide nữa cũng khá hay mà tìm mãi ko được, thôi xem tạm cái trên cũng ok
Bài liên quan
0