Jak blokować CSSy?

w dziale Aplikacje dla Opery
maxkonrad napisał(a):

Używałem do tej pory do blokowania CSSów rozszerzenia ContentBlockHelper, jednak zostało ono usunięte ze stron Opery. Bardzo wygodną była opcja blokowania CSSów. Po prostu klikało się na pole, którego nie chcieliśmy widzieć i zatwierdzaliśmy i było OK. Czy jest może jakieś rozszerzenie, które działa podobnie? Jeśli nie, to czy mógłby ktoś pokierować mnie jak blokować CSS na określonej stronie? Do ContentBlockHelper wolałbym nie wracać, bo powodowało inne problemy.

zielak007 napisał(a):

Opera Dragonfly (Ctrl+Shift+I). Klikasz na niepożądany element, znajdujesz jego identyfikator (a w przypadku jego braku odpowiednie połączenie selektorów, aby jednoznacznie wskazać dany element), dodajesz odpowiednie zaklęcie, zapisujesz jako .css i wskazujesz w Preferencjach dla witryny jako arkusz stylów (lub dodajesz do menu stylów). Np:

@charset "utf-8";
/*	Name: Znikaj	*/
#identyfikator1, #identyfikator2, .ads a {
	display: none !important;
	}
W sytuacjach, gdy styl jest niewystarczający można zrobić skrypt.

maxkonrad napisał(a):

WOW to działa. Dzięki za rzeczową odpowiedź. Czy jest gdzieś miejsce, gdzie można pobrać takie pliki dla najpopularniejszych witryn w sieci? Czy sam muszę je naskrobać? I czy dla jednej strony musi być jeden plik, czy może można umieścić reguły dla wielu stron w jednym pliku - coś jak blokowanie zawartości w Operze?

zielak007 napisał(a):

Są: http://userstyles.org/, http://extendopera.org/css czy też wątki na forum. Zależy co chcesz zmieniać lub zablokować na stronie. W większości przypadków, jeśli są to drobne wycinanki, szybciej sam napiszesz styl niż znajdziesz gotowy. Reguły możesz stosować dla wielu stron, ale istnieje wtedy ryzyko, że na niektórych stronach zniknie potrzeba treść. Możesz je zapisywać w pliku user.css, który jest tutaj: opera:config#UserPrefs|LocalCSSFile (wtedy działa na wszystkich stronach bez możliwości wyłączenia) lub tworzyć osobne pliki w katalogu opera:config#UserPrefs|LocalCSSFilesDirectory (wtedy możesz je włączać i wyłączać z menu WidokStylNazwa stylu, gdzie nazwa stylu pochodzi z

/*	Name: Nazwa 	*/
). W obu przypadkach wymagany jest restart przeglądarki, gdy dokonywane są zmiany w stylach.

Saskatchewan napisał(a):

Originally posted by maxkonrad:

Czy jest gdzieś miejsce, gdzie można pobrać takie pliki dla najpopularniejszych witryn w sieci?

Możesz zajrzeć na wpis o blokowaniu reklam na blogu Karola. Są tam style do blokowania reklam na sporej ilości stron i tzw. "AdBlock-CSS", czyli blokowanie reklam z wielu stron w jednym pliku CSS.

filip3434 napisał(a):

Istnieje dodatek do przegądarki NoAds, ma funkcję blokowania elementów stron. Wystarczy wcisnąć kombinacje klawiszy Alt+Shift+B i już możemy blokować.

https://addons.opera.com/pl/addons/extensions/details/noads-multilingual-german/1.0.99/?display=en

maxkonrad napisał(a):

Temat ten założyłem po to by dowiedzieć się jak blokować elementy unikając właśnie m.in. tego dodatku i innych podobnych, ponieważ powodują one problemy.

filip3434 napisał(a):

Problemy? Jakie na przykład? Bo ja nie widzę takich u siebie wink

maxkonrad napisał(a):

Jeśli jakaś strona bez powodu przestanie się otwierać, a otwierała się zawsze, nawet pomimo tego że nic na niej nie blokowałeś, to to będzie właśnie ten problem. U mnie tak się zdarzyło.

daroc napisał(a):

A to? https://addons.opera.com/pl/addons/extensions/details/easy-user-css/

maxkonrad napisał(a):

Originally posted by zielak007:

Opera Dragonfly (Ctrl+Shift+I). Klikasz na niepożądany element, znajdujesz jego identyfikator (a w przypadku jego braku odpowiednie połączenie selektorów, aby jednoznacznie wskazać dany element), dodajesz odpowiednie zaklęcie, zapisujesz jako .css i wskazujesz w Preferencjach dla witryny jako arkusz stylów (lub dodajesz do menu stylów). Np:

@charset "utf-8";
/*	Name: Znikaj	*/
#identyfikator1, #identyfikator2, .ads a {
	display: none !important;
	}
W sytuacjach, gdy styl jest niewystarczający można zrobić skrypt.



Dzięki za to, działa bardzo ładnie. Mam pytanie: jeśli akurat element, który chcę zablokować nie ma własnego "id", opisuje go tylko coś takiego:
<div class="resultadv2" style="width:300px;padding:10px 0;">
to jak mam to zablokować w tym pliku?

zielak007 napisał(a):

Wystarczy samo:

.resultadv2
Ale może blokować zbyt wiele, więc trzeba tak:
div[class="resultadv2"][style="width:300px;padding:10px 0;"]
Tylko jeśli coś zmienią w stylu, to trzeba będzie poprawić regułkę.

maxkonrad napisał(a):

Mam taki przykład z tej strony: http://www.megashare.com/3800452
Chciałbym zablokować trzy pola z reklamami jedno na górze i dwa na dole. Widzę, że za każde takie pole odpowiada:

<div calss="freewhitebox">

Stworzyłem więc w pliku taką regułę:

@charset "utf-8";
/*	Name: Znikaj	*/
#.freewhitebox, .ads a {
	display: none !important;
	}

Niestety nie działa.

Również taka formuła nie działa:
@charset "utf-8";
/*	Name: Znikaj	*/
#div[calss="freewhitebox"], .ads a {
	display: none !important;
	}


zielak007 napisał(a):

Bo # w CSS to identyfikator (id) a . to klasa (class) a Ty to łączysz. Poczytaj. smile Spróbuj:

.freewhitebox

Edycja: .ads a podałem tylko jako przykład. smile W drugim przypadku powinno być:
div[class="freewhitebox"]
Poczytaj jednak cały rozdział dotyczący CSS. bigsmile

maxkonrad napisał(a):

Dzięki! Ta informacja mi pomogła:
# - identyfikator
. - klasa
Teraz wszystko ładnie poblokowało.

maxkonrad napisał(a):

Da się za pomocą CSS-ów zablokować iframe?

Ryszard napisał(a):

Da się, ale lepiej to zrobić przez zablokowanie adresu.

Saskatchewan napisał(a):

Da się też zablokować wszystkie pływające ramki przez preferencje: Zaawansowane > Zawartość > Opcje stylów lub opera:config#Extensions|IFrames. Jest też opcja w preferencjach dla witryny.

Takie zablokowanie pływających ramek powodowało kiedyś jednak (nie wiem jak teraz), że nie działał GMail ani NK i nie było nawet komunikatu o przyczynie problemu. Dlatego jak jakaś strona nie działa, to trzeba sobie skojarzyć tę opcję smile.

maxkonrad napisał(a):

A ja się tutaj męczę z CSS... Dzięki, wystarczyło zwykłe zablokowanie adresu.