breedte scherm bij spatiegebruik

breedte scherm bij spatiegebruik discussie in iPhone Apps forum; ( verdwijnt na registratie ) Hallo Ik heb een kleine website voor gitaartablatuur voor de iPhone. als ik de spaties vervang door & nbsp ; (aanelkaar) dan wordt de paginabreedte ...



Ga terug   iPhone, iPod touch, iPad en Apple TV forum > iPhone > iPhone apps en games > iPhone Apps
Wachtwoord vergeten? Registreren!
Registreer FAQ Ledenlijst Kalender Zoeken Berichten van vandaag Markeer forums als gelezen
  #1  
Oud 9 January 2009, 02:30
» iPhone 4 16GB (Zwart) [FW: 4.2.1]  [Jailbreak: Nee]
» Ik heb geen iPad  
» Windows
 
Geregistreerd: 16 December 2008
Locatie: Serris, Frankrijk
Berichten: 23
Send a message via twitter to rcsmit
Standaard breedte scherm bij spatiegebruik

Hallo

Ik heb een kleine website voor gitaartablatuur voor de iPhone. als ik de spaties vervang door & nbsp ; (aanelkaar) dan wordt de paginabreedte niet meer automatisch aangepast aan de iPhone. Ik heb het ook geprobeerd door te vervangen door & #160 ;, maar dat loste het probleem ook niet op.

Als ik die vervanging niet doe, dan blijft de paginabreedte goed. (maar ik zie dan de akkoorden niet boven de juiste woorden staan).

Heeft iemand een idee hoe ik dit goed kan maken?

yTABz


en
yTABz

De code in kwestie
tabs2 = Replace(rs1("tabs"),Chr(13),"<br>" )
if test=1 then
tabs3 = Replace(tabs2," ","&nbsp;" ) 'ZORGT VOOR BUG, VERBREEDT HET SCHERM
else
tabs3 = tabs2
end if



en



Tot slot de header
<head>
<title>yTABz</title>

<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0;">
<link rel="apple-touch-icon" href="icon.png"/>
<style type="text/css">
<!--
body
{margin:0;padding:0;position:absolute;top:0px;left:0px; font-family: "Courier New";
}

-->
</style>
</head>
Advertentie
Advertentie Gesponsorde links (verdwijnt na registratie)

  #2  
Oud 18 January 2009, 22:06
» iPhone 4 16GB (Zwart) [FW: 4.2.1]  [Jailbreak: Nee]
» Ik heb geen iPad  
» Windows
 
Geregistreerd: 16 December 2008
Locatie: Serris, Frankrijk
Berichten: 23
Send a message via twitter to rcsmit
Standaard

Helaas heeft niemand een antwoord. Het is dan ook een hele specifieke vraag natuurlijk. Weet iemand andere forums (Engels, Frans of Italiaans) waar men dergelijke vragen kan stellen?

Trouwens, de width instellen op 320 of 320px helpt ook niet.
  #3  
Oud 19 January 2009, 17:12
InternetRebel's schermafbeelding
» iPhone 3GS 16GB (Zwart) [FW: 4.2.1]  [Jailbreak: Ja]
» Windows
 
Geregistreerd: 12 September 2008
Locatie: Zwolle
Berichten: 378
Standaard

Dat de nbsp; de pagina breder maakt is logisch. Dit is de HTML markup voor "No Break Space", ofwel een spatie zonder break, wat in normaal Nederlands weer betekend dat er dan een spatie wordt geplaats zonder dat de HTML rendering de regel omgooit om de pagina in het venster te passen.

Deze code gebruik je voornamelijk in tabellen waarbij je bijvoorbeeld niet wilt dat korte zinnen als een rij losse woorden onder elkaar verschijnen omdat de browser de tabelkolom te smal maakt.

Spaties vervangen door een nbsp waarna de pagina-breedte niet meer wordt aangepast is dus geen bug maar juist precies zoals het hoort!

EDIT
Een andere reden om nbsp te gebruiken is bijvoorbeeld omdat je meerdere spaties achter elkaar wilt hebben. Standaard worden meerdere "normale" spaties door een browser namelijk terug gebracht tot slechts n spatie. Dus een normale spatie gebruiken zoals in jouw voorbeeld werkt inderdaad ook niet.



EDIT
Als ik het geod begrijp wil jij eigenlijk de lyrics op n lijn hebben binnen de breedte van de browser met daarboven op de juiste plek de gitaar-tabs? En dat probeer je op te lossen met spaties tussen de tabs totdat deze op dezelfde plek valt als het woord waar het betreffende akkoord moet klinken?

En dat is waarschijnlijk ook de reden waarom je dit probeert met een fixed-width font?

__________________
...

Laatst gewijzigd door InternetRebel; 19 January 2009 om 17:23.
  #4  
Oud 19 January 2009, 18:28
» iPhone 4 16GB (Zwart) [FW: 4.2.1]  [Jailbreak: Nee]
» Ik heb geen iPad  
» Windows
 
Geregistreerd: 16 December 2008
Locatie: Serris, Frankrijk
Berichten: 23
Send a message via twitter to rcsmit
Standaard

Bedankt voor je uitvoerige antwoord. Je hebt inderdaad goed begrepen wat mijn bedoeling is. En zoals jij het brengt, is het ook gewoon heel logisch! Fixed font? Dan gaan we(=de browser) niet knoeien met de layout.

Ik moet dus gewoon mijn invoer gaan valideren op te lange regels en zeker mijn uitvoer gaan opmaken, want niet onmogelijk is met een splitcommando ofzo.
  #5  
Oud 20 January 2009, 03:52
InternetRebel's schermafbeelding
» iPhone 3GS 16GB (Zwart) [FW: 4.2.1]  [Jailbreak: Ja]
» Windows
 
Geregistreerd: 12 September 2008
Locatie: Zwolle
Berichten: 378
Standaard

Citaat:
Oorspronkelijk geplaatst door rcsmit Bekijk bericht
Fixed font? Dan gaan we(=de browser) niet knoeien met de layout.
Nou, dat stukje bedoelde ik net iets anders dan jij het opvat. Met "fixed font" bedoelde ik eigenlijk een lettertype met een vaste breedte. Ik meen uit je site te kunnen opmaken dat je de tabs op een bepaalde plek boven de lyrics wilt hebben. Als een bepaalde tab op bijvoorbeeld de 20e positie moet staan wil je er 20 spaties voor zetten. Dit werkt alleen goed met een lettertype met vaste breedte omdat bij andere lettertypes niet iedere letter evenveel ruimte innemen en je dus niet met spaties kunt "uitrekenen" waar een letter moet komen.

Worden je pagina's opgebouwd via PHP of is het statisch? Anders zou je wellicht met allerlei berekeningen in PHP kunnen bereiken wat je wilt. Je zou ook ieder woord in een aparte cell in een tabel kunnen zetten en de tabs in een cel erboven. Dan ben je ook niet meer gedwongen om een lettertype met vaste breedte te gebruiken. Alleen zit je dan nog steeds met het probleem wanneer je een regel om wilt gooien naar de volgende.
  #6  
Oud 20 January 2009, 04:32
» iPhone 4 16GB (Zwart) [FW: 4.2.1]  [Jailbreak: Nee]
» Ik heb geen iPad  
» Windows
 
Geregistreerd: 16 December 2008
Locatie: Serris, Frankrijk
Berichten: 23
Send a message via twitter to rcsmit
Standaard

Ik gebruik ook Courier New op die site. En ik heb de code nu zo aangepast dat hij automatisch afbreekt na 30 tekens. Het ziet er soms niet zo mooi uit, maar nu staan de akkoorden wel boven de juiste woorden en wordt het scherm niet meer verbreedt wat verplicht scrollen tot gevolg heeft. Nu wordt het dus een kwestie van streng zijn bij de invoer.

De tabs komen uit een memoveld uit een access-database en worden gewoon gekopieerd van internet. Dus elk woord in een aparte cel zetten is een omweg die erg gecompliceerd is, nog gecompliceerder dan de regels afbreken bij de spatie (wat dus de volgende stap wordt om de lelijke afbrekingen te vermijden)

Voor de liefhebber en het archief hieronder de code (in ASP)

PHP-code:
schermbreedte=30
..
..
if 
rs1("tabs")<> "" then
                My_Array1
=split(rs1("tabs"),chr(13))
                    For 
i=0 to UBound(My_Array1)
                        
woord=My_Array1(i)
                        
'response.write woord
                        lengte=len(woord)
                        aantalregel=(lengte/schermbreedte)  '
volgens mij moet dit int (l/szijnnader uit te zoeken
                        
for n=0 to aantalregel
                            start
=(n*schermbreedte)+1
                            tabtemp
=tabtemp Mid (woord,startschermbreedte) & "<BR>"
                        
next
                    next
                    
                    tabtemp
=tabtemp &"<BR>"
                    
tabs3 Replace(tabtemp," ","&nbsp;" 
                    
tabtemp=""
            
end if 

Laatst gewijzigd door rcsmit; 20 January 2009 om 04:37.
  #7  
Oud 20 January 2009, 04:43
InternetRebel's schermafbeelding
» iPhone 3GS 16GB (Zwart) [FW: 4.2.1]  [Jailbreak: Ja]
» Windows
 
Geregistreerd: 12 September 2008
Locatie: Zwolle
Berichten: 378
Standaard

O jee, ASP, daar weet ik HELEMAAL niks van. You're on your own!

Maar wat wellicht een mooiere manier van afbreken geeft is om de "teller" te laten beginnen op de positie van de scherm-breedte (jij geeft 30 aan) en deze dan terug te laten lopen tot deze een spatie tegenkomt en DAT als afbreekpunt gebruiken.

Bijvoorbeeld: "It's been seven hours and fifteen days" zet de teller (30) op "... and fift" en dan komt "een days" op de volgende regel. Niet echt fraai. Laat je 'm vanaf positie 30 terugtellen tot een spatie dan kom je netjes uit tot "...and" en dan ga je weet verder.

Jij weet vast beter hoe je zoiets in ASP kunt vertalen.
  #8  
Oud 20 January 2009, 12:54
» iPhone 4 16GB (Zwart) [FW: 4.2.1]  [Jailbreak: Nee]
» Ik heb geen iPad  
» Windows
 
Geregistreerd: 16 December 2008
Locatie: Serris, Frankrijk
Berichten: 23
Send a message via twitter to rcsmit
Standaard

Kijk, zoiets was ik al van plan, maar was me nog niet gelukt. Maar zo heel ingewikkeld is het niet, dus het gaat er binnenkort nog wel komen....
  #9  
Oud 21 January 2009, 02:22
koekeloer's schermafbeelding
» iPhone 3G 8GB [FW: 2.2]  [Jailbreak: Ja]
» Windows
 
Geregistreerd: 3 April 2008
Locatie: Diemen
Berichten: 11
Standaard

zet er eens een div omheen :

<div style="width:320px;margin:0px;">
jouw code
</div>
__________________
koekeloer
  #10  
Oud 21 January 2009, 12:17
libia's schermafbeelding
» iPhone 3G 8GB [FW: 4.2.1]  [Jailbreak: Ja]
» iPad 1 Wi-Fi +3G 64GB [FW: 4.3.5]  [Jailbreak: Ja]
» Windows
 
Geregistreerd: 2 December 2008
Berichten: 451
Standaard

dit vond ik wel een leuke uitdaging! dit is hoe ik het in php heb gedaan:
PHP-code:
<?php
$tekst 
"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut sollicitudin placerat tellus. Vestibulum lacinia pharetra libero. Nulla facilisi. Sed congue, nisl vel laoreet lobortis, ante felis venenatis nulla, eget rhoncus ligula ligula ac neque. Sed ullamcorper sollicitudin massa. Proin ultricies dictum arcu. Aenean lobortis rutrum turpis. Morbi sagittis ornare enim. Donec sed nisl. Duis augue. Aliquam erat volutpat. Nunc pretium consequat velit. Pellentesque dolor orci, fermentum ut, dictum eu, molestie ac, justo. Vestibulum imperdiet. Cras eget sapien. Donec consectetur, purus sed facilisis malesuada, elit est vehicula libero, et fermentum ante eros nec urna. Praesent porta suscipit mi. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Integer placerat, massa sit amet pharetra fermentum, pede risus ultrices est, et bibendum tellus dolor et elit. Praesent ac sapien blandit odio sodales accumsan. ";

$len strlen($tekst); //tekens in de tekst
$array str_split($tekst); //de tekens in een array
$lastbr 0//$i van laatste plek waar br is toegevoegt

for($i 0$i $len$i++) //$i heeft als beginwaarde 0, zolang het lager is dan het aantal tekens in de tekst komt er steeds eentje bij
{
    
$toegevoegd false//nog geen br toegevoegt
    
    
if($i % ($lastbr 30) == && $i//als $i delen door 30 een heel getal geeft en $i geen nul is
    
{
        for(
$j $i$j 0$j--)
        {
            if(
$array[$j] == " ")
            {
                
array_splice($array$j1"<br />"); //vervang het item op plaats $j (een spatie dus) door een br
                
$lastbr $j;
                break; 
//stop met verder teruggaan (de binnenste for wordt gestopt)
            
}
        }
    }
}
for(
$i 0$i $len$i++)
{
    echo 
$array[$i];
}
?>
misschien dat je het zelf kunt porten naar asp? ik heb daar namelijk geen verstand van
  #11  
Oud 31 January 2009, 14:02
» iPhone 4 16GB (Zwart) [FW: 4.2.1]  [Jailbreak: Nee]
» Ik heb geen iPad  
» Windows
 
Geregistreerd: 16 December 2008
Locatie: Serris, Frankrijk
Berichten: 23
Send a message via twitter to rcsmit
Standaard

Het is gelukt!

Hier de code voor de liefhebbers
Code:
if rs1("tabs")<> "" then
                        My_Array1=split(rs1("tabs"),chr(13))
                         For i=0 to UBound(My_Array1)
                             woord= My_Array1(i)
                          if woord<>"" then
                          n=0
                          lengte=len(woord)
                          if lengte<schermbreedte then
                              tabtemp=tabtemp&woord & "<br>"
                          else
                              start=1
                                              
                              do until laatsteregel=1
                                  loper=start+schermbreedte   'loper = 30 schermbreedte=20  'start=1

                                  'response.write "loper:"&loper
                                      if loper>lengte then 
                                          loper=lengte
                                      end if
                                      if schermbreedte > (lengte-start) then
                                          tabtemp=tabtemp & Mid (woord,start, (lengte-start+1)) & "<BR>"
                                          laatsteregel=1
                                          exit do
                                      else
                                          for m=loper to (start) step -1
                                      
                                                teken=mid (woord, m,1)
                                                if m=start then 'de loper is aangekomen bij de start zonder een spatie tegengekomen zijn
                                                    telang=1
                                                  gevonden=1
                                                  if positie=0 then positie=loper
                                                     end if
                                                if teken =" " then
                                                    gevonden=1
                                                  if positie=0 then positie=m+1
                                                end if
                                            next    
                                      
                                          end if
                                          tabtemp=tabtemp & Mid (woord,start, (positie-start)) & "<BR>"    
                                          if telang=1 then
                                              start=positie
                                              telang=0
                                          else
                                              start=positie+1
                                          end if
                                          positie=0

                                  loop 
                              
                              end if
                              'tabtemp=tabtemp& tabeind & "<BR>"
                              laatsteregel=0
                              positie=0
                          end if  'if woord <>""
                         next
                         tabs3 = Replace(tabtemp," ","&nbsp;" ) 
                  end if
Reageren


Er zijn 1 actieve gebruikers die momenteel deze discussie bekijken (0 leden en 1 gasten)

 
Discussietools
Weergave

Soortgelijke discussies

Discussie Auteur Forum Reacties Laatste bericht
probleem bij reparatie scherm rodyp iPhone algemeen 12 24 April 2010 00:11
Scherm oplichten bij sms mcbbvb iPhone algemeen 4 12 June 2009 18:08
Raar scherm bij jailbreaken maltje Archief 1 11 May 2009 19:11
grijs scherm bij opladen Mr Cesc iPhone algemeen 3 12 April 2009 18:27

Regels voor berichten
Je mag geen nieuwe discussies starten
Je mag niet reageren op berichten
Je mag geen bijlagen versturen
Je mag niet je berichten bewerken

BB code is Aan
Smileys zijn Aan
[IMG]-code is Aan
HTML-code is Uit
Trackbacks are Aan
Pingbacks are Aan
Refbacks are Uit



Alle tijden zijn GMT +2. Het is nu 22:39.