2010-04-11 10 views
5

Załóżmy, że mam pewne dane o współrzędnych x i y dla piksela, jak mogę sprawić, by był czerwony (zachowując wszystko inne na stronie po prostu białe) w HTML? Czy to możliwe w HTML?Jak zmienić jeden piksel w HTML?

+0

Muszę was ostrzec, że SE, zwłaszcza Google, nie lubi rzeczy 1px. – Ben

+0

Dziękuję za to ostrzeżenie, omfgroflmao. – brilliant

Odpowiedz

9
<div style="position: absolute; left: {X}px; top: {Y}px; width: 1px; height: 1px; background-color: red;"></div> 

Wymień {X} i {Y} z rzeczywistym współrzędne masz. W zależności od strony może się zdarzyć, że zadzwoni pod numer z-index. Użycie numeru position: fixed pozwoli ci ustawić go względem przeglądarki, a nie dokumentu.

+2

, chociaż pod wieloma względami jest to w rzeczywistości rozwiązanie css. – xenoterracide

+0

Thakn You very much, bcherry !!! – brilliant

+0

Ooops!W ten sposób nie działa. Czy robię coś niewłaściwego? :

brilliant

3

można umieścić div 1-pikselowy z pozycjonowaniem absolutnym tam.

+0

Witaj cobbal !!! Proszę podać mi przykład (kawałek kodu). Jak zrobić to pozycjonowanie absolutne? – brilliant

0

Prawdopodobnie nie. To może być możliwe w JavaScript, ale nie mogę sobie wyobrazić, że to dobrze znana rzecz.

Dlaczego musisz zmienić jeden piksel?

+0

Witaj Josh !!!! W tej chwili nie mam żadnego celu, próbuję po prostu dowiedzieć się, czy w ogóle jest to możliwe w HTML. – brilliant

+0

Dywan 1px, o którym wspomniano, ale jeśli planujesz zrobić z nim coś fantazyjnego (tzn. Rysować), będzie wolno. –

+0

Widzę, dziękuję Josh !!! – brilliant

7

To, czego najprawdopodobniej potrzebujesz, to canvas element.

W przeciwnym razie rozwiązanie 1-pikselowe div oferowane przez cobbal jest sposobem na zrobienie tego.

Podejrzewam jednak, że masz nadzieję na ekstrapolację tego pomysłu, aby móc generować dowolne piksele. W takim przypadku elementy div będą bardzo powolne.

Element canvas jest częścią powstającego standardu HTML 5. Nie będziesz mieć wiele wsparcia z przeglądarkami IE, ale wszystko inne działa w dzisiejszych czasach.

+0

Witaj Koobz !!!! "W takim przypadku elementy div będą bardzo powolne" - Czy masz na myśli, że tego rodzaju strona będzie wymagała dużo czasu, aby załadować ją do przeglądarki? – brilliant

+1

W prostych przypadkach będzie to nieistotne. W rzeczywistości, jeśli wszystko, co robisz, to narysuj jeden piksel, będzie idealnie, więc nie pozwól mi się przestraszyć. Jeśli użyjesz go do rysowania okręgu, a następnie animowania go, wynik będzie prawdopodobnie o 100 razy wolniejszy niż w przypadku jego odpowiednika w obszarze roboczym. Wyciągam tę liczbę z powietrza, ale jeśli już, to podejrzewam, że jest gorsza w praktyce. – Koobz

+0

Rozumiem, Koobz, dziękuję za wyjaśnienie. – brilliant

2

Można użyć czystej tabeli HTML (z borderWidth, cellpadding i cellspacing wszystkie 0, a tr i td wysokościach wszystko 1), aby stworzyć coś takiego:

alt text http://www.freeimagehosting.net/uploads/36dcc03919.jpg

Można ręcznie edytować HTML code dla tego piksela po pikselu (ponieważ jest to tylko jeden duży stół).

Uwaga: to oczywiście nie jest praktyczne podejście (jak się okaże, gdy przeglądarka stara się renderować plik HTML o wielkości 6 MB), ale jest ono technicznie możliwe do wykonania grafiki piksel po pikselu z czystym HTML-em.

+0

Dzięki, MusiGenesis !!! Idealny pomysł. Myślę, że gdyby tło było białe zamiast czarnej przeglądarki, "zmagałoby się" znacznie mniej. – brilliant

+1

Na szczęście nie jestem * tym * znudzony, ale można napisać cały mechanizm graficzny oparty na javascriptach, który działa na śmiesznych tablicach z jednym pikselem na komórkę, rysując linie, kształty, tekst itp. Piksel po pikselu ustawiając bgcolor każdej komórki. To by było jak stare czasy na Apple IIe - zobaczyłbyś, jak twoja grafika jest rysowana po jednym pikselu na raz. – MusiGenesis

+0

To po prostu rozwiało mój umysł, zupełnie fajnie! Prawie natychmiast wyświetla się w Firefoksie 7 i IE 9, ale Chrome 17 z jakiegoś powodu nie może go obsłużyć ... – Anders