zastosuj CSS master reset, pisze z pamieci i nie pamietam teraz czy dokładnie tak wygląda master reset ale to powinno wystarczyć:
Cytat
* html {margin: 0; padding:0; border: 0;}
A czemu tak? A o co chodzi?
HTML kiedyś nie znał CSS ani w postaci arkuszy zewnętrznych/wewnętrznych ani w postaci artybutu "style", żeby jednak nie zmuszać webdesignerów do okładania każdego <h1> tagami <font> i jednocześnie zachować specyficzne cechy wyglądu różnych elementów dokumentu (h1, p, ul itp) pozostawiono interpretację większości tagów przegladarkom, przez co wspomniane elementy wyglądają mniej-więcej poprawnie pomimo braku "styla", i tak <h1> jest duży czarny i gruby

a lista ma jakieś kropki, nawet jak ich nie ustawimy. Tak, ślicznie ... sam ślicz, tyle, że:
- dopóki nie ustawimy sami cech elementu, jesteśmy skazani na przeglądarkę, zatem <h1> ma swoje domyślne marginesy i wielkosc czcionki
- w różnych przeglądarkach te domyślne cechy sa rózne
Master reset ma za zadanie wstępne wyzerowanie marginesów wewnętrznych i zewnętrznych wszystkich tagów html, tak, aby potem móc samemu je poustawiać, poniważ mniej szkodliwy jest ich brak niż niekontrolowana wartosc, zalezna od przeglądarki, co ma szczególne znaczenie przy precyzyjnym ustawianiu rozmiarów diva.
Zamiast resetować globalnie, możesz też ustawić precyzyjnie te cechy dla stosowanych tagów, tak jak opisane przez Ciebie usunięcie marginesu z H1.
Przy okazji wspomnę, że każdy element floatujący powinien miec równiez ustawione "position: relative".